home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / COPYO~17.ZIP / Orange Book II.txt
Text File  |  1997-03-23  |  142KB  |  3,835 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                         NATIONAL COMPUTER
  17.  
  18.                          SECURITY CENTER
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                            A GUIDE TO
  25.  
  26.                           UNDERSTANDING
  27.                  
  28.                      CONFIGURATION MANAGEMENT
  29.  
  30.                         IN TRUSTED SYSTEMS
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                             NCSC-TG-006-88
  61.                                      Library No. S-228,590
  62.  
  63.  
  64.  
  65.  
  66.                            FOREWORD
  67.  
  68.  
  69. This publication, "A Guide to Understanding Configuration
  70. Management in Trusted Systems", is being issued by the National
  71. Computer Security Center (NCSC) under the authority of and in
  72. accordance with Department of Defense (DoD) Directive 5215.1. The
  73. guidelines described in this document provide a set of good
  74. practices related to configuration management in Automated Data
  75. Processing (ADP) systems employed for processing classified and
  76. other sensitive information.  Recommendations for revision to
  77. this guideline are encouraged and will be reviewed biannually by
  78. the National Computer Security Center through a formal review
  79. process.  Address all proposals for revision through appropriate
  80. channels to:
  81.  
  82.        National Computer Security Center
  83.        9800 Savage Road
  84.        Fort George G. Meade, MD  20755-6000
  85.  
  86.        Attention: Chief, Computer Security Technical Guidelines
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94. ____________________________
  95. Patrick R. Gallagher, Jr.                        28 March 1988
  96. Director
  97. National Computer Security Center
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.                               
  109.  
  110.                                 i
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.                         ACKNOWLEDGEMENTS
  119.  
  120.  
  121. Special recognition is extended to James N. Menendez, National
  122. Computer Security Center (NCSC), as project manager and primary
  123. author of this document.
  124.  
  125. Special acknowledgement is given to Grant Wagner, NCSC, and Dana
  126. Nell Stigdon, NCSC, for their constant help and guidance in the
  127. production of this document.  Additionally, Dana Nell Stigdon,
  128. was responsible for writing the section on the Ratings
  129. Maintenance Program.  Acknowledgement is also given to all those
  130. members of the computer security community who contributed their
  131. time and expertise by actively participating in the review of
  132. this document.
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.                                 ii
  165.  
  166.  
  167.                             CONTENTS
  168.  
  169. FOREWORD ....................................................  i
  170.  
  171. ACKNOWLEDGEMENTS ............................................ ii
  172.  
  173. CONTENTS .................................................... iii
  174.  
  175. PREFACE .....................................................  v
  176.  
  177. 1.  PURPOSE .................................................  1
  178.  
  179. 2.  SCOPE ...................................................  1
  180.  
  181. 3.  CONTROL OBJECTIVES ......................................  2
  182.  
  183. 4.  ORGANIZATION ............................................  3
  184.  
  185. 5.  OVERVIEW OF CONFIGURATION MANAGEMENT PRINCIPLES .........  4
  186.  
  187.     5.1  PURPOSE OF CONFIGURATION MANAGEMENT ................  4
  188.  
  189. 6.  MEETING THE CRITERIA REQUIREMENTS .......................  5
  190.  
  191.     6.1  THE B2 CONFIGURATION MANAGEMENT REQUIREMENTS .......  5
  192.     6.2  THE B3 CONFIGURATION MANAGEMENT REQUIREMENTS .......  6
  193.     6.3  THE A1 CONFIGURATION MANAGEMENT REQUIREMENTS .......  6
  194.  
  195. 7.  FUNCTIONS OF CONFIGURATION MANAGEMENT ...................  7 
  196.       
  197.     7.1  CONFIGURATION IDENTIFICATION .......................  7
  198.          7.1.1  Configuration Items .........................  8
  199.  
  200.     7.2  CONFIGURATION CONTROL ..............................  10
  201.     7.3  CONFIGURATION STATUS ACCOUNTING ....................  11 
  202.     7.4  CONFIGURATION AUDIT ................................  12
  203.    
  204. 8.  THE CONFIGURATION MANAGEMENT PLAN .......................  14
  205.  
  206. 9.  IMPLEMENTATION METHODS ..................................  16
  207.  
  208.     9.1  THE BASELINE CONCEPT ...............................  16
  209.     9.2  CONFIGURATION MANAGEMENT AT MER, INC. ..............  18
  210.     9.3  THE CONFIGURATION CONTROL BOARD ....................  20
  211.  
  212. 10. OTHER TOPICS ............................................  23
  213.  
  214.    10.1  TRUSTED DISTRIBUTION ...............................  23 
  215.    10.2  FUNCTIONAL TESTING .................................  24 
  216.    10.3  CONFIGURATION MANAGEMENT TRAINING ..................  24
  217.  
  218.                                iii
  219.  
  220.  
  221.  
  222.    10.4  CONFIGURATION MANAGEMENT SUPERVISION ...............  25
  223.    
  224. 11. RATINGS MAINTENANCE PROGRAM .............................  26
  225.  
  226. 12. CONFIGURATION MANAGEMENT SUMMARY  .......................  27
  227.  
  228. APPENDIX A: AUTOMATED TOOLS .................................  29
  229.  
  230.     A.1  UNIX (1) SCCS ......................................  29
  231.     A.2  VAX DEC/CMS ........................................  30
  232.  
  233. GLOSSARY ....................................................  32
  234.  
  235. REFERENCES ..................................................  34
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270. (1)  Unix is a registered trademark of Bell Laboratories
  271.  
  272.                                 iv
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.                             PREFACE
  281.  
  282.  
  283. Throughout this guideline there will be recommendations made that
  284. are not included in the Trusted Computer System Evaluation
  285. Criteria (TCSEC) as requirements.  Any recommendations that are
  286. not in the TCSEC will be prefaced by the word "should," whereas
  287. all requirements will be prefaced by the word "shall."  It should
  288. be noted that a TCSEC rating will only be based upon meeting the
  289. TCSEC requirements.  Recommendations are made in order to provide
  290. additional ways of increasing assurance.  It is hoped that this
  291. will help to avoid any confusion.
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.                                 v
  327.  
  328.  
  329.  
  330. 1.  PURPOSE
  331.  
  332. The Trusted Computer System Evaluation Criteria (TCSEC) is the
  333. standard used for evaluating the effectiveness of security
  334. controls built into ADP systems.  The TCSEC is divided into four
  335. divisions: D, C, B, and A, ordered in a hierarchical manner with
  336. the highest division, A, being reserved for systems providing the
  337. best available level of assurance.  Within divisions C through A
  338. are a number of subdivisions known as classes, which are also
  339. ordered in a hierarchical manner to represent different levels of
  340. security in these classes.
  341.  
  342. For TCSEC classes B2 through A1, the TCSEC requires that all
  343. changes to the Trusted Computing Base (TCB) be controlled by
  344. configuration management.  Configuration management of a trusted
  345. system consists of identifying, controlling, accounting for, and
  346. auditing all changes made to the TCB during its development,
  347. maintenance, and design.  The primary purpose of this guideline
  348. is to provide guidance to developers of trusted systems on what
  349. configuration management is and how it may be implemented in the
  350. development and life-cycle of a trusted system.  This guideline
  351. has also been designed to provide guidance to developers of all
  352. systems on the importance of configuration management and how it
  353. may be implemented.
  354.   
  355. Examples in this document are not to be construed as the only
  356. implementation that will satisfy the TCSEC requirement.  The
  357. examples are merely suggestions of appropriate implementations. 
  358. The recommendations in this document are also not to be construed
  359. as supplementary requirements to the TCSEC.  The TCSEC is the
  360. only metric against which systems are to be evaluated.
  361.  
  362. This guideline is part of an on-going program to provide helpful
  363. guidance on TCSEC issues and the features they address.  
  364.  
  365.  
  366. 2.  SCOPE
  367.  
  368. An important security feature of TCSEC classes B2 through A1 is
  369. that there be configuration management procedures to manage
  370. changes to the Trusted Computing Base (TCB) and all of the
  371. documentation and tests affected by these changes.  Additionally,
  372. it is recommended that such plans and procedures exist for
  373. systems not being considered for an evaluation or whose target
  374. evaluation class may be less than B2.  The assurance provided by
  375. configuration management is beneficial to all systems.  This
  376. guideline will discuss configuration management and its features
  377. as they apply to computer systems and products, with specific
  378. attention being given to those that are being built with the 
  379.  
  380.                                 1
  381.  
  382.  
  383.  
  384. intention of meeting the requirements of the TCSEC, and to those
  385. systems planning to be re-evaluated under the Ratings Maintenance
  386. Program (RAMP) (see Section 11. RAMP).
  387.  
  388. Except in cases where there is a distinction between the
  389. configuration management of a trusted system and an untrusted
  390. system, the word "system" shall be used as the object of
  391. configuration management, encompassing both the system and the
  392. TCB.  It should be noted that the TCSEC only requires the TCB to
  393. be controlled by configuration management, although it is
  394. recommended that the entire system be maintained under
  395. configuration management.
  396.  
  397.  
  398. 3.  CONTROL OBJECTIVES
  399.  
  400. The TCSEC gives the following as the Assurance Control Objective:
  401.  
  402.     "Systems that are used to process or handle classified or    
  403.     other sensitive information must be designed to guarantee    
  404.     correct and accurate interpretation of the security policy   
  405.     and must not distort the intent of that policy.  Assurance   
  406.     must be provided that correct implementation and operation   
  407.     of the policy exists throughout the system's life-cycle."[1]
  408.  
  409. Configuration management maintains control of a system throughout
  410. its life-cycle, ensuring that the system in operation is the
  411. correct system, implementing the correct security policy.  The
  412. Assurance Control Objective as it relates to configuration
  413. management leads to the following control objective that may be
  414. applied to configuration management: 
  415.  
  416.     "Computer systems that process and store sensitive or        
  417.     classified information depend on the hardware and software   
  418.     to protect that information.  It follows that the hardware   
  419.     and software themselves must be protected against            
  420.     unauthorized changes that could cause protection mechanisms  
  421.     to malfunction or be bypassed completely.  [For this         
  422.     reason, changes to trusted computer systems, during their    
  423.     entire life-cycle, must be carefully considered and          
  424.     controlled to ensure that the integrity of the               
  425.     protection mechanism is maintained.]  Only in this way can   
  426.     confidence be provided that the hardware and software        
  427.     interpretation of the security policy is maintained          
  428.     accurately and without distortion."[1]
  429.  
  430.  
  431.  
  432.  
  433.  
  434.                                 2
  435.  
  436.  
  437.  
  438. 4.  ORGANIZATION
  439.  
  440. This document has been written to provide the reader with an 
  441. understanding of what configuration management is and how it may
  442. be implemented in an ADP system.
  443.  
  444. For developers of trusted systems, this document also relates the
  445. TCSEC requirements to the configuration management practices that
  446. meet them.  This document has been organized to illustrate the
  447. connection between practices and requirements through the use of
  448. a numbering convention for the TCSEC requirements.  The
  449. configuration management requirements have been broken down into
  450. 19 separate requirements in Section 6 of this document.  The
  451. requirement number(s) will be located in parenthesis following
  452. its appropriate discussion, e.g., (Requirements 2, 15), signifies
  453. that the previous discussion dealt with TCSEC requirements 2 and
  454. 15 as stated in Section 6. 
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.                                 3
  489.  
  490.  
  491.  
  492. 5.  OVERVIEW OF CONFIGURATION MANAGEMENT PRINCIPLES
  493.  
  494. Configuration management consists of four separate tasks:
  495. identification, control, status accounting, and auditing.  For
  496. every change that is made to an automated data processing (ADP)
  497. system, the design and requirements of the changed version of the
  498. system should be identified.  The control task of configuration
  499. management is performed by subjecting every change to
  500. documentation, hardware, and software/firmware to review and
  501. approval by an authorized authority.  Configuration status
  502. accounting is responsible for recording and reporting on the
  503. configuration of the product throughout the change.  Finally,
  504. through the process of a configuration audit, the completed
  505. change can be verified to be functionally correct, and for
  506. trusted systems, consistent with the security policy of the
  507. system.  Configuration management is a sound engineering practice
  508. that provides assurance that the system in operation is the
  509. system that is supposed to be in use.  The assurance control
  510. objective as it relates to configuration management of trusted
  511. systems is to "guarantee that the trusted portion of the system
  512. works only as intended."[1]
  513.  
  514. Procedures should be established and documented by a
  515. configuration management plan to ensure that configuration
  516. management is performed in a specified manner.  Any deviation
  517. from the configuration management plan could contribute to the
  518. failure of the configuration management of a system entirely, as
  519. well as the trust placed in a trusted system. 
  520.  
  521.  
  522. 5.1  Purpose of Configuration Management
  523.  
  524. Configuration management exists because changes to an existing
  525. ADP system are inevitable.  The purpose of configuration
  526. management is to ensure that these changes take place in an
  527. identifiable and controlled environment and that they do not
  528. adversely affect any properties of the system, or in the case of
  529. trusted systems, do not adversely affect the implementation of
  530. the security policy of the TCB.   Configuration management
  531. provides assurance that additions, deletions, or changes made to
  532. the TCB do not compromise the trust of the originally evaluated
  533. system.  It accomplishes this by providing procedures to ensure
  534. that the TCB and all documentation are updated properly.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.                                 4
  543.  
  544.  
  545.  
  546. 6.  MEETING THE CRITERIA REQUIREMENTS
  547.  
  548. This section lists the TCSEC requirements for configuration
  549. management.  Each requirement for each class has been listed
  550. separately and numbered.  Each number may be referenced to the
  551. requirement discussions that follow in this document.  This
  552. section is designed to serve as a quick reference for TCSEC class
  553. requirements.
  554.  
  555.  
  556. 6.1  The B2 Configuration Management Requirements
  557.   
  558. Requirement 1 - "During development and maintenance of the TCB, a
  559. configuration management system shall be in place."[1]
  560.  
  561. Requirement 2 - The configuration management system shall
  562. maintain "control of changes to the descriptive top-level
  563. specification (DTLS)."[1]
  564.  
  565. Requirement 3 - The configuration management system shall
  566. maintain control of changes to "other design data."[1]
  567.  
  568. Requirement 4 - The configuration management system shall
  569. maintain control of changes to "implementation documentation"[1]
  570. (e.g., user's manuals, operating procedures).
  571.  
  572. Requirement 5 - The configuration management system shall
  573. maintain control of changes to the "source code."[1]
  574.  
  575. Requirement 6 - The configuration management system shall
  576. maintain control of changes to "the running version of the object
  577. code."[1]
  578.  
  579. Requirement 7 - The configuration management system shall
  580. maintain control of changes to "test fixtures."[1]
  581.  
  582. Requirement 8 - The configuration management system shall
  583. maintain control of changes to test "documentation."[1]
  584.  
  585. Requirement 9 - "The configuration management system shall assure
  586. a consistent mapping among all documentation and code associated
  587. with the current version of the TCB."[1]
  588.  
  589. Requirement 10 - The configuration management system shall
  590. provide tools "for generation of a new version of the TCB from
  591. the source code."[1]
  592.  
  593. Requirement 11 - The configuration management system shall
  594. provide "tools for comparisons of a newly generated TCB version 
  595.  
  596.                                 5
  597.  
  598.  
  599.  
  600. with the previous version in order to ascertain that only the 
  601. intended changes have been made in the code that will actually be
  602. used as the new version of the TCB."[1]                          
  603.                    
  604.  
  605. 6.2  The B3 Configuration Management Requirements
  606.  
  607. The requirements for configuration management at TCSEC class B3
  608. are the same as the requirements for TCSEC class B2. Although no
  609. additional requirements have been added, the configuration
  610. management system shall change to reflect changes in the design
  611. documentation requirements at class B3.  This means that the
  612. additional documentation required for TCSEC class B3 shall also
  613. be maintained under configuration management.
  614.  
  615. 6.3  The A1 Configuration Management Requirements
  616.  
  617. Requirements 2 through 11 are the same as those described in
  618. Section 6.1 for a class B2 rating.  In addition the following
  619. requirements are added for class A1:
  620.  
  621. Requirement 12 - "During the entire life-cycle, i.e., during the
  622. design, development, and maintenance of the TCB, a configuration
  623. management system shall be in place for all security-relevant
  624. hardware, firmware, and software."[1]
  625.  
  626. Requirement 13 - The configuration management system shall
  627. maintain control of changes to the TCB hardware.
  628.  
  629. Requirement 14 - The configuration management system shall
  630. maintain control of changes to the TCB software.
  631.  
  632. Requirement 15 - The configuration management system shall
  633. maintain control of changes to the TCB firmware.
  634.  
  635. Requirement 16 - The configuration management system shall
  636. "maintain control of changes to the formal model."[1]
  637.  
  638. Requirement 17 - The configuration management system shall
  639. maintain control of changes to the "formal top-level
  640. specifications."[1]
  641.  
  642. Requirement 18 - The tools available for configuration management
  643. shall be "maintained under strict configuration control."[1]
  644.  
  645. Requirement 19 - "A combination of technical, physical, and
  646. procedural safeguards shall be used to protect from unauthorized
  647. modification or destruction the master copy or copies of all
  648. material used to generate the TCB."[1]
  649.  
  650.                                 6
  651.  
  652.  
  653.  
  654. 7.  FUNCTIONS OF CONFIGURATION MANAGEMENT
  655.  
  656. 7.1  Configuration Identification
  657.   
  658. Configuration management procedures should enable a person to
  659. "identify the configuration of a system at discrete points in
  660. time for the purpose of systematically controlling changes to the
  661. configuration and maintaining the integrity and traceability 
  662. of this configuration throughout the system life cycle."[4]  The 
  663. basic function of configuration identification is to identify the
  664. components of the design and implementation of a system.  When it
  665. concerns trusted systems, this specifically means the design and
  666. implementation of the TCB.  This task may be accomplished through
  667. the use of identifiers and baselines (see Section 9.1  The
  668. Baseline Concept).  By establishing configuration items and
  669. baselines, the configuration of the system and its TCB can be
  670. accurately identified throughout the system life-cycle.  
  671.  
  672. At TCSEC class B2, the TCSEC requires that "changes to the
  673. descriptive top-level specification, other design data,
  674. implementation documentation, source code, the running version of
  675. the object code, and test fixtures and documentation"[1] of the
  676. TCB be controlled by configuration management (Requirements 2, 3,
  677. 4, 5, 6, 7, 8).  Configuration identification helps achieve this
  678. control.  The TCSEC requires that each change to the TCB shall be
  679. individually identifiable so that a history of the TCB may be
  680. generated at any time.  At TCSEC class A1, the requirements are
  681. extended to include that the "formal model...and formal top-level
  682. specifications" of the TCB shall also be maintained under the
  683. configuration management system (Requirements 16, 17).  
  684.  
  685. The following is a sample list of what shall be identified and
  686. maintained under configuration management:
  687.  
  688.    * the baseline TCB including hardware, software, and firmware
  689.  
  690.    * any changes to the TCB hardware, software, and firmware     
  691.      since the previous baseline
  692.  
  693.    * design and user documentation
  694.  
  695.    * software tests including functional and system integrity    
  696.      tests
  697.  
  698.    * tools used for generating current configuration items       
  699.      (required at TCSEC class A1 only)
  700.  
  701. Configuration management procedures should make it possible to
  702. accurately reproduce any past TCB configuration.  In the event a 
  703.  
  704.                                 7
  705.  
  706.  
  707.  
  708. security vulnerability is discovered in a version of the TCB
  709. other than the most current one, analysts will need to be able to
  710. reconstruct the past environment.  This reconstruction will be
  711. possible to perform if proper configuration identification has
  712. been performed throughout the system life-cycle.  
  713.  
  714. The TCSEC also requires at class B2 and above, that tools shall
  715. be provided "for generation of a new version of the TCB from the
  716. source code" and that there "shall be tools for comparing a newly
  717. generated version with the previous TCB version in order to
  718. ascertain that only the intended changes have been made in the
  719. code that will actually be used as the new version of the TCB"[1]
  720. (Requirements 10, 11).  These tools are responsible for providing
  721. assurance that no additional changes have been inserted into the
  722. TCB that were not intended by the system designer.  Automated
  723. tools are available that make it possible to identify changes to
  724. a system online (see APPENDIX A: AUTOMATED TOOLS).  Any changes,
  725. or suggested changes to a system should be entered into an online
  726. library.  This data can later be used to compare any two versions
  727. of a system.  Such online configuration libraries may even
  728. provide the capability for line-by-line comparison of software
  729. modules and documentation.  At Class A1, the tools used to
  730. perform this function shall be "maintained under strict
  731. configuration control"[1] (Requirement 18).  These tools shall
  732. not be changed without having to undergo a strict review process
  733. by an authorized authority.
  734.  
  735.  
  736. 7.1.1  Configuration Items
  737.  
  738. A configuration item is an uniquely identifiable subset of the
  739. system configuration that represents the smallest portion of the
  740. system to be subject to independent configuration management
  741. change control procedures.   Configuration items need to be
  742. individually controlled because any change to a configuration
  743. item may have some effect upon the properties of the system or
  744. the security policy of the TCB.  
  745.  
  746. Configuration items as they relate to the TCB, are subsets of the
  747. TCB's hardware, firmware, software, documentation, tests, and at
  748. class A1, development tools.  Each module of TCB software for
  749. example, may constitute a separate configuration item. 
  750. Configuration items should be assigned unique identifiers (e.g.,
  751. serial numbers, names) to make them easier to identify throughout
  752. the system life-cycle.  Proper identification plays a vital role
  753. in meeting the TCSEC requirement for class B2 that requires the
  754. configuration management system to "assure a consistent mapping
  755. among all documentation and code associated with the current
  756. version of the TCB"[1] (Requirement 9).  Used in conjunction with
  757.  
  758.                                 8
  759.  
  760.  
  761.  
  762. a configuration audit, a consistent labeling system helps tie
  763. documentation to the code it describes.  Not only does labeling
  764. each configuration item make them easier to identify, but it also
  765. increases the level of control that may be maintained over the
  766. entire system by making these items more traceable.    
  767.  
  768. Configuration items may be given an identifier through a random
  769. distribution process, but, it is more useful for the
  770. configuration identifier to describe the item it identifies. 
  771. Selecting different fields of the configuration identifier to
  772. represent characteristics of the configuration item is one method
  773. of accomplishing this.  The United States Social Security number
  774. is a "configuration identifier" we all have that uses such a
  775. system.  The different fields of the number identify where we
  776. applied for the Social Security card, hence describing a little
  777. bit about ourselves.   As the configuration identifier relates to
  778. computer systems, one field should identify the system version
  779. the item belongs to, the version of software that it is, or its
  780. interface with other configuration items.   When using a
  781. numbering scheme like this, a change to a configuration item
  782. should result in the production of a new configuration
  783. identifier.  This new identifier should be produced by an
  784. alteration or addition to the existing configuration identifier. 
  785. A new version of a software program should not be identified by
  786. the same configuration item number as the original program.  By
  787. treating the two versions as distinct configuration items, line-
  788. by-line comparisons are possible to perform.  
  789.  
  790. Identifying configuration items is a task that should be
  791. performed early in the development of the system, and once
  792. something is designated as a configuration item, the design 
  793. of that item should not change without the knowledge and 
  794. permission of the party controlling the item.  Early
  795. identification of configuration items increases the level of
  796. control that may be maintained over the item and allows the item
  797. to be traced back through all stages of the system development. 
  798. In the event that a configuration item is not identified until
  799. late in the development process, accountability for that item in
  800. the early stages of the system development would be non-existent.
  801.  
  802. Configuration items may vary widely in complexity, size, and
  803. type, and it is important to choose configuration items with 
  804. appropriate granularity.  If the items are too large, the data
  805. identifying each one will overwhelm anyone trying to audit the
  806. system.  If the items are too small, the amount of total 
  807. identification data will overwhelm the system auditors.[2]  The
  808. appropriate granularity for configuration items should be
  809. identified by each vendor and documented in the configuration
  810. management plan.
  811.  
  812.                                 9
  813.              
  814.  
  815.  
  816. 7.2  Configuration Control
  817.  
  818. "Configuration control involves the systematic evaluation,
  819. coordination, approval, or disapproval of proposed changes to the
  820. design and construction of a configuration item whose
  821. configuration has been formally approved."[5]  Configuration
  822. control should begin in the earliest stages of the design and 
  823. development of the system and extend over the full life of the
  824. configuration items included in the design and development
  825. stages.  Early initiation of configuration control procedures
  826. provides increased accountability for the system by making its
  827. development more traceable.  The traceability function of
  828. configuration control serves a dual purpose.  It makes it
  829. possible to evaluate the impact of a change to the system and
  830. controls the change as it is being made.  With configuration
  831. control in place, there is less chance of making undesirable
  832. changes to a system that may later adversely affect the security
  833. of the system.
  834.  
  835. Initial phases of configuration control are directed towards
  836. control of the system configuration as defined primarily in
  837. design documents.  For these, the Configuration Management plan
  838. shall specify procedures to ensure that all documentation is
  839. updated properly and presents an accurate description of the
  840. system and TCB configuration.  Often a change to one area of a
  841. system may necessitate a change to another area.   It is not
  842. acceptable to only write documentation for new code or newly
  843. modified code, but rather documentation for all parts of the TCB
  844. that were affected by the addition or change shall be updated
  845. accordingly.  Although documentation may be available, unless it
  846. is kept under configuration management and updated properly it
  847. will be of little, if any use.  In the event that the system is
  848. found to be deficient in documentation, efforts should be made to
  849. create new documentation for areas of the system where it is
  850. presently inadequate or non-existent.                            
  851.  
  852. To meet the TCSEC requirements though, configuration control
  853. shall cover a broader area than just documentation, and at Class
  854. B2 shall also maintain control of "design data, source code, the
  855. running version of the object code, and test fixtures"[1] of the
  856. TCB (Requirements 3, 5, 6, 7).  A change to any of these shall be
  857. subject to review and approval by an authorized authority.  
  858.  
  859. For TCB configuration items, those items shall not be able to
  860. change without the permission of the controlling party.   At
  861. TCSEC class A1, this requirement is strengthened to require
  862. "procedural safeguards"[1] to protect against unauthorized
  863. modification of the materials used in the TCB (Requirement 19). 
  864. These procedures should require that not only does the 
  865.  
  866.                                 10
  867.  
  868.  
  869.  
  870. controlling party need to give permission to have a change
  871. performed, but that the controlling party performs the change on
  872. the master copy of the TCB that will be released.  This ensures
  873. against changes being made to the master copy that are different
  874. than the approved changes. 
  875.  
  876. The degree of configuration control that is exercised over the
  877. TCB will affect whether or not it meets the TCSEC requirements
  878. for configuration management.  The configuration management
  879. requirements in the TCSEC require that a configuration management
  880. system be in place during the "development and maintenance of the
  881. TCB" at Class B2 (Requirement 1), and at Class A1, "during the
  882. entire life-cycle"[1] of the TCB (Requirement 12).  A minimal
  883. configuration control system that would not be sufficient in
  884. meeting the TCSEC requirements, may only provide for review after
  885. a change has been made to the system.  A system such as this may 
  886. ensure that the change is complete and acceptable and may control
  887. the release of the change, but for the most part, the control 
  888. exercised is little more than an after-the-fact quality assurance
  889. check. This system is certainly better than having no control 
  890. system in place, but it would not meet the TCSEC requirements for
  891. configuration management.  What is missing from this system that 
  892. would bring it closer to the B2 requirements is control over the 
  893. change as it is being made.  The configuration control required
  894. by the TCSEC should provide for constant checking and approval of
  895. a change from its inception, through implementation and testing,
  896. to release.  The level of control exercised over the TCB may
  897. exceed that of the rest of the system, but it is recommended that
  898. all parts of the system be under configuration control.  
  899.  
  900. In the case of a change to hardware or software/firmware that
  901. will be used at multiple sites, configuration control is also 
  902. responsible for ensuring that each site receives the appropriate
  903. version of the system. 
  904.  
  905. The point behind configuration control of the TCB is that all
  906. changes to the TCB shall be approved, monitored, and evaluated to
  907. provide assurance that the TCB functions properly and that all
  908. security policies are maintained.
  909.  
  910.  
  911. 7.3  Configuration Status Accounting
  912.  
  913. Configuration status accounting is charged with reporting on the
  914. progress of the development in very specific ways.  It
  915. accomplishes this task through the processes of data recording,
  916. data storing, and data reporting.  The main objective of
  917. configuration status accounting is to record and report all
  918. information that is of significance to the configuration 
  919.  
  920.                                 11
  921.  
  922.  
  923.  
  924. management process.  What is of significance should be outlined
  925. in the Configuration Management Plan.  The establishment of a new
  926. baseline (see Section 9.1 THE BASELINE CONCEPT) or the meeting of
  927. a milestone is an example of what should be recorded as
  928. configuration status accounting information.  The requirements in
  929. the configuration management plan should be viewed as the minimum
  930. and any events that seem relevant to configuration management
  931. should be captured and recorded in that they may prove to be
  932. useful in the future.  
  933.  
  934. The configuration accounting system may consist of tracing
  935. through documentation manually to find the status of a change or
  936. it may consist of a database that can automatically track a
  937. change.  As long as the information exists accurately in some
  938. form though, it will serve its purpose.  The benefit of an online
  939. status accounting system is that the information may be kept in a
  940. more structured fashion, which would facilitate keeping it up to 
  941. date.  Being able to query a database for information concerning
  942. the status of a configuration change or configuration item would 
  943. also be less cumbersome than sorting through notebook pages.
  944. Finally, the durability of a diskette or hard disk for storage 
  945. outweighs that of a spiral notebook or folder, provided that it
  946. is properly backed up to avoid data loss in the event of a system
  947. failure.  
  948.  
  949. Whichever system is used, it should be possible to quickly locate
  950. all authorized versions of a configuration item, add together all
  951. authorized changes with comments about the reason for the change,
  952. and arrive at either the current status of that configuration
  953. item, or some intermediate status of the requested item.  The
  954. status of all authorized changes being performed should be
  955. formulated into a System Status Report that will be presented at
  956. a Configuration Control Board meeting (see Section 9.3 THE
  957. CONFIGURATION CONTROL BOARD).  
  958.  
  959. Configuration status accounting "establishes records and reports
  960. which enable proper logistics support, i.e., the supplying of
  961. spares, instruction manuals, training and maintenance facilities,
  962. etc. to be established."[5]  The records and reports produced 
  963. through configuration status accounting should include a current 
  964. configuration list, an historical change list, the original
  965. designs, the status of change requests and their implementation,
  966. and should provide the ability to trace all changes.
  967.  
  968.  
  969. 7.4  Configuration Audit
  970.  
  971. Configuration auditing involves checking for top to bottom
  972. completeness of the configuration accounting information "to 
  973.  
  974.                                 12
  975.  
  976.  
  977.  
  978. ascertain that only the [authorized] changes have been made in
  979. the code that will actually be used as the new version of the
  980. TCB."[1] (Requirement 11)  When a change has been made to a
  981. system, it should be reviewed and audited for its effect on the
  982. rest of the system. This should include reviewing and testing all
  983. software to ensure that the change has been performed correctly. 
  984.  
  985. Configuration auditing is concerned with examining the control
  986. process of the system and ensuring that it actually occurs the
  987. way it should.  Configuration auditing for trusted systems
  988. verifies that after a change has been made to the TCB, the
  989. security features and assurances are maintained. Configuration
  990. audits should be performed periodically to verify the
  991. configuration status accounting information.  The configuration
  992. audit minimizes the likelihood that unapproved changes have been
  993. inserted without going unnoticed and that the status accounting
  994. information adequately demonstrates that the configuration
  995. management assurance is valid.
  996.  
  997. "A complete audit should include tracing each requirement down 
  998. through all functions that implement it to see if that 
  999. requirement is met."[2]  Furthermore, the configuration audit
  1000. should also ensure that no additions were made that were not
  1001. required.  For the audit to provide a useful form of technical
  1002. review, it should be predictable and as foolproof as possible,
  1003. i.e., there should be specific desired results. 
  1004.  
  1005. The configuration audit should verify that:
  1006.  
  1007. * the architectural design satisfies the requirements
  1008.  
  1009. * the detailed design satisfies the architectural design
  1010.  
  1011. * the code implements the detailed design
  1012.  
  1013. * the item/product performs per the requirements
  1014.  
  1015. * the configuration documentation and the item/product match
  1016.  
  1017. The main emphasis of configuration auditing is on providing the 
  1018. user with reasonable assurance that the version of a system in 
  1019. use is the same version that the user expects to be in use. 
  1020. Configuration audits ensure that the configuration control
  1021. procedures of the configuration management system are being
  1022. followed.  The assurance feature of configuration auditing is
  1023. provided through reasonable and consistent accountability
  1024. procedures.  All code audits should follow roughly the same
  1025. procedures and perform the same set of checks for every change to
  1026. the system.     
  1027.  
  1028.                                 13
  1029.  
  1030.  
  1031.  
  1032. 8.  THE CONFIGURATION MANAGEMENT PLAN
  1033.  
  1034. Effective configuration management should include a well-thought-
  1035. out plan that should be prepared immediately after project
  1036. initiation.  This plan should describe, in simple, positive
  1037. statements, what is to be done to implement configuration
  1038. management in the system and TCB.  A minimal configuration
  1039. management plan may be limited to simply defining how
  1040. configuration management will be implemented as it relates to the
  1041. identification, control, accounting, and auditing tasks.  The
  1042. configuration management plan described in the following
  1043. paragraphs is an example of a plan that goes into more detail and
  1044. contains documentation on all aspects of configuration
  1045. management, such as examples of documents to be used for
  1046. configuration management, procedures for any automated tools
  1047. available, or a Configuration Control Board roster (see Section
  1048. 9.3 THE CONFIGURATION CONTROL BOARD).  The configuration
  1049. management plan should contain documentation that describes how
  1050. the configuration management "tasks are to be carried out in
  1051. sufficient detail that anyone involved with the project can
  1052. consult them to determine how each specific development task
  1053. relates to CM."[2]    
  1054.  
  1055. One portion of the configuration management plan should define
  1056. the roles played by designers, developers, management, the
  1057. Configuration Control Board, and all of the personnel involved
  1058. with any part of the life-cycle of the system.  The
  1059. responsibilities required by all those involved with the system
  1060. should be established and documented in the configuration
  1061. management plan to ensure that the human element functions
  1062. properly during configuration management.  A list of
  1063. Configuration Control Board members, or the titles of the members
  1064. should also be included in this section.
  1065.  
  1066. Any tools that will be available and used for configuration
  1067. management should be documented in the configuration management 
  1068. plan.  At TCSEC class A1, it is required that these tools shall
  1069. be "maintained under strict configuration control"[1]
  1070. (Requirement 18).  These tools may include forms used for change
  1071. control, conventions for labeling configuration items, software
  1072. libraries, as well as any automated tools that may be available
  1073. to support the configuration management process.  Samples of any
  1074. documents to be used for reporting should also be contained in
  1075. the configuration management plan with a description of each.
  1076.  
  1077. A section of the Configuration Management Plan should deal with
  1078. procedures.  Since the main thrust of configuration management
  1079. consists of the following of procedures, there needs to be
  1080. thorough documentation on what procedures one should follow 
  1081.  
  1082.                                 14
  1083.  
  1084.  
  1085.  
  1086. during configuration management.  The configuration management 
  1087. plan should provide the procedures to take to ensure that both
  1088. user and design documentation are updated in synchrony with all
  1089. changes to the system.  It should include the guidelines for
  1090. creating and maintaining functional tests and documentation
  1091. throughout the life of the system.  The configuration management
  1092. plan should describe the procedures for how the design and
  1093. implementation of changes are proposed, evaluated, coordinated,
  1094. and approved or disapproved.  The configuration management plan
  1095. should also include the steps to take to ensure that only those
  1096. approved changes are actually included and that the changes are
  1097. included in all of the necessary areas.
  1098.  
  1099. Another portion of the configuration management plan should
  1100. define any existing "emergency" procedures, e.g., procedures for
  1101. performing a time sensitive change without going through a full
  1102. review process, that may override the standard procedure.  These
  1103. procedures should define the steps for retroactively implementing
  1104. configuration management after the emergency change has been
  1105. completed. 
  1106.  
  1107. The configuration management plan is a living document and should
  1108. remain flexible during design and development phases.  Although
  1109. the configuration management plan is in place to impose control
  1110. on a project, it should still be open to additions and changes as
  1111. designers and developers see fit.   This is not to say that the
  1112. configuration management plan is only a guide and need not be
  1113. followed, but that modifications should be able to occur.  If the
  1114. plan is not followed, there is no way it will be able to provide
  1115. the appropriate assurances.  In the event that a change is needed
  1116. to the configuration management plan, the change should be
  1117. carefully evaluated and approved.  In changes to the
  1118. configuration management plan of a trusted system this evaluation
  1119. shall ensure that the security features and assurances supported
  1120. by the plan are still maintained after the change has been
  1121. implemented.   
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.                                 15
  1137.  
  1138.  
  1139.  
  1140. 9.  IMPLEMENTATION METHODS
  1141.  
  1142. This section discusses implementation methods for configuration
  1143. management that may be used to meet some of the requirements of
  1144. the TCSEC.  Section 9.1 discusses the baseline concept as a
  1145. method of configuration identification.  The baseline concept
  1146. utilizes the features of configuration management spoken of
  1147. previously, but divides the life-cycle of the system into
  1148. different baselines.
  1149.  
  1150. Section 9.2 illustrates how a fictitious company, MER, Inc.,
  1151. conducts configuration management.  They are attempting to meet
  1152. the TCSEC requirements for a B2 system.   
  1153.  
  1154. Section 9.3 discusses the concept of a Configuration Control
  1155. Board (CCB) for carrying out configuration control.  A CCB is a
  1156. body of people responsible for configuration control.  This 
  1157. concept is widely used by many computer vendors.
  1158.  
  1159.  
  1160. 9.1  The Baseline Concept
  1161.  
  1162. Baselines are established at pre-selected design points in the
  1163. system life-cycle.  One baseline may be used to describe a
  1164. specific version of a system, or in some configuration management
  1165. systems a single baseline may be defined at each of several major
  1166. milestones.   Baselines should be established at the discretion
  1167. of the Configuration Control Board and outlined in the
  1168. configuration management plan.  In cases where several baselines
  1169. are established, each baseline serves as a cutoff point for one
  1170. segment of development, while simultaneously acting as the step
  1171. off point for another segment.   The characteristics common to
  1172. all baselines are that the design of the system will be approved
  1173. at the point of their establishment and it is believed that any
  1174. changes to this design will have some impact on the future
  1175. development of the system. 
  1176.  
  1177. Baseline management is one technique for performing configuration
  1178. identification.  It identifies the system and TCB design and
  1179. development as a series of phases or baselines that are subject
  1180. to configuration control.  Used in conjunction with configuration
  1181. items, this is another effective way to identify the system and
  1182. its TCB configuration throughout its life-cycle.       
  1183.  
  1184. "For each different type of baseline, the individual components
  1185. to be controlled should be identified, and any changes that
  1186. update the current configuration should be approved and 
  1187. documented.  For each intermediate product in the development 
  1188. [life-cycle] there is only one baseline.  The current 
  1189.  
  1190.                                 16
  1191.  
  1192.  
  1193.  
  1194. configuration can be found by applying all approved changes to
  1195. the baseline."[2]
  1196.  
  1197. In a system defining several baselines for different stages of
  1198. development, these baselines or milestones should be established
  1199. at the system inception to serve as guides throughout the
  1200. development process.   Although specific baselines are
  1201. established in this case, alternatives may be recommended to
  1202. promote greater design flexibility or efficiency. The number of
  1203. baselines that may be established for a system will vary
  1204. depending upon the size and complexity of the system and the
  1205. methods supported by the designers and developers.  It is 
  1206. possible to establish multiple baselines existing at the same
  1207. time so long as configuration management practices are applied
  1208. properly to each baseline.  The following example will discuss
  1209. the baseline concept using three common baseline categories:
  1210. functional, allocated, and product.  It should be emphasized that
  1211. these are simply basic milestones and baselines should be
  1212. established depending upon the decisions of the designers and 
  1213. developers.   
  1214.  
  1215. The first baseline, the functional baseline, is established at
  1216. the system inception.  It is derived from the performance and
  1217. objectives criteria documentation that consists of specifications
  1218. defining the system requirements.  Once these specifications have
  1219. been established, any changes to them should be approved.
  1220.  
  1221. The requirements produced in the functional baseline may be
  1222. divided and subdivided into various configuration items.  Once it
  1223. has been decided what the configuration items will be, each of
  1224. the items should be given a configuration identifier. From the
  1225. analysis of the system requirements the allocated baseline will
  1226. be established.  This baseline identifies all of the required
  1227. functions with a specific configuration item that is responsible
  1228. for the function.  In this baseline, an individual should be
  1229. charged with the responsibility for each configuration item.  
  1230. All changes affecting specifications defining design requirements
  1231. for the system or its configuration items as stated in the
  1232. allocated baseline should require approval of the responsible
  1233. individual.  
  1234.  
  1235. The final baseline, the product baseline, should contain that
  1236. version of the system that will be turned over for integration
  1237. testing.  This baseline signifies the end of the development
  1238. phase and should contain a releasable version of the system.  
  1239.  
  1240. The baseline example mention earlier in which one baseline is 
  1241. established for a single version of a system entails the same 
  1242. reasoning as the functional, allocated, and product baseline 
  1243.  
  1244.                                 17
  1245.  
  1246.  
  1247.  
  1248. example.   The system established as a baseline in the single
  1249. baseline example will need to have an approved design before 
  1250. being placed under configuration control.  Prior to the design
  1251. approval, the system design will have to have undergone some type
  1252. of functional review and a process that would allocate these
  1253. functions to various configuration items.  Although the early
  1254. processes of the design will not be as formal in the single 
  1255. baseline example as they are when the early tasks are
  1256. individually defined, the system will still benefit from being
  1257. under the control of configuration management as a baseline.  The
  1258. main point of establishing any baseline is controlling changes to
  1259. that baseline by requiring any changes to it to have to undergo
  1260. an established change control process.  
  1261.  
  1262.  
  1263. 9.2  Configuration Management at MER, Inc.
  1264.  
  1265. MER, Inc., is a manufacturer of computer systems.  Their latest
  1266. project consists of building a system that will meet the B2
  1267. requirements of the TCSEC.  In the past, their configuration
  1268. management has only consisted of quality assurance checks, but to
  1269. meet the B2 requirements they realize that they will need to have
  1270. specific configuration management procedures in place during the
  1271. development and maintenance of the system.    
  1272.  
  1273. The project manager was assigned the task of writing the
  1274. configuration management procedures and elected to present them
  1275. in a configuration management plan.  After doing some research on
  1276. what should be contained in the configuration management plan, he
  1277. proceeded to write a plan for MER, Inc.  The configuration
  1278. management plan that was written listed all of the steps to be
  1279. followed when carrying out configuration management for the
  1280. system.  It described the procedures to be followed by the
  1281. development team and described the automated tools that were
  1282. going to be used at MER, Inc. for configuration management. 
  1283. These tools consisted of an online tracking data base to be used
  1284. for status accounting, an online data base that contained a
  1285. listing of all of the items under configuration control, and
  1286. automated libraries used for storing software.  Before
  1287. development began, all of the development team was responsible
  1288. for reading the configuration management plan to ensure that they
  1289. were aware of the procedures to be followed for configuration
  1290. management.
  1291.  
  1292. As the system was developed, the TCB hardware, software, and
  1293. firmware were labeled using a configuration item numbering scheme
  1294. that had been explained in the configuration management plan.  In
  1295. addition, the documentation and tests accompanying these items 
  1296. were also given configuration item numbers to assure a consistent
  1297.  
  1298.                                 18
  1299.  
  1300.  
  1301.  
  1302. mapping between TCB code and these items.  All of the
  1303. configuration item numbers and a description of the items were
  1304. stored in a data base that could be queried at any time to derive
  1305. the configuration of the entire system.  Software and
  1306. documentation were stored in a software library where they could
  1307. be retrieved and worked on without affecting the master versions. 
  1308. The master copies of all software were stored in a master library
  1309. that contained the releasable versions of the software.  Both of
  1310. these libraries are protected by a discretionary access control
  1311. mechanism to prevent any unauthorized personnel from tampering
  1312. with the software.    
  1313.  
  1314. During the development of the system, changes were required.  The
  1315. procedures for performing a change under configuration control
  1316. are described in the configuration management plan.  These are
  1317. the same procedures that will remain in effect throughout the
  1318. life-cycle of the system.  For each proposed change, a decision
  1319. has to be made by management whether or not the change is
  1320. feasible and necessary.  MER, Inc. has an online forum for
  1321. reviewing suggested changes.  This forum makes it possible for
  1322. all of the members of the development team to comment on how the
  1323. proposed change may affect their work.  Management would often
  1324. consult this forum to help arrive at their final decision.  
  1325.  
  1326. After a decision was made, a programmer was assigned to perform
  1327. the change.  The programmer would retrieve the most recent
  1328. version of the software from the software library and proceed to
  1329. change it.  As the change was being performed, the changes were
  1330. entered into the online tracking data base.  This made it
  1331. possible for members of the development team to query this data
  1332. base to find the current status of the change at any time.  After
  1333. the change had been performed it was tested and documented, and
  1334. upon successful completion it was forwarded to a reviewer. This
  1335. reviewer was the software manager, who was the only person
  1336. authorized to approve a changed version for release.   After the
  1337. change was approved for release, the changed version was stored
  1338. in the master library and a second copy was stored in the
  1339. software library.  Each change stored in these libraries was 
  1340. given a new configuration identification number.   A tool was
  1341. available at MER, Inc. that made it possible to identify changes
  1342. made to software.  It compared any two versions of the software
  1343. and provided a line-by-line listing of the differences between
  1344. the two.
  1345.  
  1346. It was realized at the beginning of the development process that
  1347. there would be times when critical changes would need to be
  1348. performed that would not be able to undergo this review process. 
  1349. For these changes, emergency procedures had been listed in the 
  1350. configuration management plan and a critical fix library was 
  1351.  
  1352.                                 19
  1353.  
  1354.  
  1355.  
  1356. available to record critical changes that had occurred since a
  1357. release.
  1358.  
  1359. A control process for changes to the TCB hardware was also 
  1360. provided for in the configuration management plan.  The
  1361. procedures ensured that changes to the TCB hardware were
  1362. traceable and did not violate the security assumptions made by
  1363. the TCB software.  Similar to software changes, all hardware
  1364. changes were reviewed by the project manager before being 
  1365. implemented.  
  1366.  
  1367. After a change is made to the TCB software, MER, Inc. performs a
  1368. configuration audit to verify the information that exists in the
  1369. tracking data base.  Whether or not a change is performed, the
  1370. configuration management plan at MER, Inc. specifies that a
  1371. configuration audit be performed at least once a month.  This
  1372. audit compares the current master version with the status
  1373. accounting information to verify that no changes have been
  1374. inserted that were not approved.   
  1375.  
  1376. This configuration management plan encompasses the descriptive
  1377. top-level specification (DTLS), implementation documentation,
  1378. source code, object code, test fixtures, and test documentation,
  1379. and has been found to satisfy the TCSEC requirements for
  1380. configuration management at class B2.
  1381.  
  1382.  
  1383. 9.3  The Configuration Control Board (CCB)
  1384.  
  1385. Configuration control may be performed in different ways.  One
  1386. method of configuration control that is in use by systems already
  1387. evaluated at TCSEC Class B2 and above is to have the control
  1388. carried out by a body of qualified individuals known as the
  1389. Configuration Control Board (CCB), also known as the
  1390. Configuration Change Board.  The Board is headed by a
  1391. chairperson, who is responsible for scheduling meetings and for
  1392. giving the final approval on any proposed changes.  The
  1393. membership of the CCB may vary in size and composition from
  1394. organization to organization, but it should include members from
  1395. any or all of the following areas of the system team:
  1396.  
  1397.    * Program Management
  1398.  
  1399.    * System Engineering
  1400.  
  1401.    * Quality Assurance
  1402.  
  1403.    * Technical Support
  1404.  
  1405.  
  1406.                                 20
  1407.  
  1408.  
  1409.  
  1410.    * Integration and Test
  1411.  
  1412.    * System Installation
  1413.  
  1414.    * Technical Documentation
  1415.  
  1416.    * Hardware and Software/Firmware Acquisition
  1417.  
  1418.    * Program Development
  1419.  
  1420.    * Security Engineering           
  1421.  
  1422.    * User Groups
  1423.  
  1424. The members of the CCB should interact periodically, either
  1425. through formal meetings, electronic forums, or any other
  1426. available means, to discuss configuration management topics such
  1427. as proposed changes, configuration status accounting reports, and
  1428. other topics that may be of interest to the different areas of
  1429. the system development.  These interactions should be held at
  1430. periodic intervals to keep the entire system team up-to-date with
  1431. all advancements or alterations in the system.  The Board serves
  1432. to control changes to the system and ensures that only approved
  1433. changes are implemented into the system.  The CCB carries out
  1434. this function by considering all proposals for modifications and
  1435. new acquisitions and by making decisions regarding them.  
  1436.  
  1437. An important part of having cross representation in the CCB from
  1438. various groups involved in the system development is to prevent
  1439. "unnecessary and contradictory changes to the system while
  1440. allowing changes that are responsive to new requirements, changed
  1441. functional allocations, and failed tests."[2]  All of the members
  1442. of the Board should have a chance to voice their opinions on
  1443. proposed changes.  For example, if system engineering proposes a 
  1444. change that will affect security, both sides should be able to
  1445. present their case at a CCB meeting.  If diversity did not exist
  1446. in the CCB, changes may be performed, and upon implementation may
  1447. be found to be incompatible with the rest of the system.  
  1448.  
  1449. The configuration control process begins with the documentation 
  1450. of a change request.  This change request should include
  1451. justification for the proposed change, all of the affected items
  1452. and documents, and the proposed solution. The change request
  1453. should be recorded, either manually or online in order to provide
  1454. a way of tracking all proposed changes to the system and to
  1455. ensure against duplicate change requests being processed.  
  1456.  
  1457. When the change request is recorded, it should be distributed for
  1458. analysis by the CCB who will review and approve or disapprove the
  1459.  
  1460.                                 21
  1461.  
  1462.  
  1463.  
  1464. change request.  An analysis of the total impact of the change
  1465. will decide whether or not the change should be performed.  The
  1466. CCB will approve or disapprove the change request depending upon
  1467. whether or not the change is viewed as a necessary and feasible 
  1468. change that will further the design goals of the system.  In
  1469. situations where trusted systems are involved, the CCB shall also
  1470. ensure that the change will not affect the security policy of the
  1471. system.
  1472.  
  1473. Once a decision has been reached regarding any modifications, the
  1474. CCB is responsible for prioritizing the approved modifications to
  1475. ensure that those that are most important are developed first.
  1476. When prioritizing changes, an effort should be made to have the
  1477. changes performed in the most logical order whenever possible.
  1478. The CCB is also responsible for assigning an authority to perform
  1479. the change and for ensuring that the configuration documentation
  1480. is updated properly.  The person assigned to do the change should
  1481. have the proper authorization to modify the system, and in
  1482. trusted systems processing sensitive information, this
  1483. authorization shall be required.  During the development of any
  1484. enhancements and new developments, the CCB continues to exert
  1485. control over the system by determining the level of testing
  1486. required for all developments. 
  1487.  
  1488. Upon completion of the change, the CCB is responsible for 
  1489. verifying that the change has been properly incorporated and that
  1490. only the approved change has been incorporated.   Tests should be
  1491. performed on the modified system or TCB to ensure that they
  1492. function properly after the change is completed.  The CCB should
  1493. review the test results of any developments and should be the
  1494. final voice on release decisions.  
  1495.  
  1496. The use of a CCB is one way of performing configuration control,
  1497. but not every vendor may have the desire or resources to
  1498. establish one.  Whatever the preference, there should still be
  1499. some way of performing the control processes described
  1500. previously.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.                                 22
  1515.  
  1516.  
  1517.  
  1518. 10.  OTHER TOPICS
  1519.  
  1520. 10.1  Trusted Distribution
  1521.  
  1522. Related to the configuration management requirements for trusted
  1523. systems is the TCSEC requirement for trusted distribution at
  1524. class A1 which states:
  1525.  
  1526.       "A trusted ADP system control and distribution facility    
  1527.       shall be provided for maintaining the integrity of the     
  1528.       mapping between the master data describing the current     
  1529.       version of the TCB and the on-site master copy of the code 
  1530.       for the current version.  Procedures (e.g., site security  
  1531.       acceptance testing) shall exist for assuring that the TCB  
  1532.       software, firmware, and hardware updates distributed to a  
  1533.       customer are exactly as specified by the master            
  1534.       copies."[1]
  1535.  
  1536. Two questions that the trusted distribution process should answer
  1537. are: (a) Did the product received come from the organization who
  1538. was supposed to have sent it? and (b) Did the recipient receive
  1539. exactly what the sender intended?
  1540.  
  1541. Configuration management assists trusted distribution by ensuring
  1542. that no alterations are made to the TCB from the time of approved
  1543. modification to the time of release.  The additional
  1544. configuration management requirement at A1 that supports this is,
  1545. "A combination of technical, physical and procedural safeguards
  1546. shall be used to protect from unauthorized modification or
  1547. destruction the master copy or copies of all material used to
  1548. generate the TCB"[1] (Requirement 19).  This requirement calls
  1549. for strict control over changes made to any versions of the TCB. 
  1550. The possibility that a change may not be performed as specified,
  1551. or that a harmful modification may be inserted into the TCB
  1552. should be considered and the authority to perform changes to the
  1553. master copy should be restricted.  A single master copy authority
  1554. should be made responsible for ensuring that only approved and
  1555. acceptable changes are implemented into the master copy.
  1556.  
  1557. Configuration status accounting records and auditing reports can
  1558. provide accountability for all TCB versions in use.  In the event
  1559. of altered copies being distributed or "bogus" copies being
  1560. distributed that were not manufactured by the vendor, 
  1561. configuration management records will be able to assess the      
  1562. validity and accuracy of all TCB versions.  Trusted distribution 
  1563. displays the need for configuration control over all changes to
  1564. the TCB.  Without configuration control there would be no
  1565. accountability for the TCB versions distributed to the customer. 
  1566.  
  1567.  
  1568.                                 23
  1569.  
  1570.  
  1571.  
  1572. 10.2  Functional Testing
  1573.  
  1574. "The system developer shall provide to the evaluators a document
  1575. that describes the test plan, test procedures that show how the
  1576. security mechanisms were tested, and results of the security
  1577. mechanisms' functional testing."[1]  The creation and maintenance
  1578. of these functional tests is required to be part of the
  1579. configuration management procedures.  Test results and any
  1580. affected test documentation shall be maintained under
  1581. configuration management and updated wherever necessary
  1582. (Requirements 7, 8).  The tests should be repeatable, and include
  1583. sufficient documentation so that any knowledgeable programmer
  1584. will be able to figure out how to run them.  The test plan for
  1585. the system should be described in the functional specification
  1586. (or other design documentation) for the TCB, along with
  1587. descriptions of the test programs.  The test plan and programs
  1588. should be reviewed and audited along with the programs they test,
  1589. although the coding standards need not be as strict as those of
  1590. the tested programs.
  1591.  
  1592. It is not acceptable to only generate tests for code that was
  1593. opened or replaced, but all of the portions of the TCB that were
  1594. affected by the change should also be tested.  The NCSC
  1595. evaluators can provide a description of the security functional
  1596. tests required to meet the TCSEC testing requirements, including
  1597. the testing required as stated above for configuration
  1598. management.
  1599.  
  1600.  
  1601. 10.3  Configuration Management Training
  1602.  
  1603. Each new technical employee should receive training in the
  1604. configuration management procedures that a particular
  1605. installation follows.  Experienced programmers, although they may
  1606. be familiar with some form of configuration management, will also
  1607. require training in any new procedures, i.e., an automated
  1608. accounting system, that will be required to be followed. 
  1609. Training should be conducted either "by holding formal classes or
  1610. by setting aside sufficient time for the reading of the company
  1611. wide configuration standards."[2]  New programmers should become
  1612. familiar with the Configuration Management Plan before being
  1613. allowed to incorporate any changes into the design baseline.  It
  1614. should be stressed that a failure to maintain the configuration
  1615. management standards resulting from untrained employees, could
  1616. prevent the system from receiving a rating.[2]  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.                                 24
  1623.  
  1624.  
  1625.  
  1626. 10.4  Configuration Management Supervision
  1627.    
  1628. A successful configuration management system requires the 
  1629. following of many procedures.  Considering the demands made on   
  1630. the system staff, errors may occur and shortcuts may be sought 
  1631. which will jeopardize the entire configuration management plan. 
  1632. A review process should be present to ensure that no single
  1633. person can create a change to the system and implement it without
  1634. being subject to some type of approval process.  Supervisors, who
  1635. are responsible for the personnel performing the change should be
  1636. required to sign an official record that the change is the
  1637. correct change.[2]   
  1638.  
  1639. Proper supervision also provides assurance that whoever performs
  1640. the change has the proper authorization to do so.  Changes should
  1641. not be performed by personnel that are not qualified to perform
  1642. the change.  Also, in systems that process sensitive information,
  1643. the programmer performing the change shall possess the proper
  1644. security clearance to perform the change.
  1645.  
  1646. Management itself must directly support the configuration
  1647. management plan in order for it to work.  It should not encourage
  1648. cutting configuration management corners under any circumstances,
  1649. e.g., due to scheduling or budgeting.  Management should be
  1650. willing to support the expenditure of money, people, and time to
  1651. allow for proper configuration management. 
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.                                 25
  1677.  
  1678.  
  1679.  
  1680. 11.  RATINGS MAINTENANCE PROGRAM
  1681.  
  1682. The Ratings Maintenance Program (RAMP) has been developed by the
  1683. NCSC in an effort to keep the Evaluated Products List (EPL)
  1684. current.  By training vendor personnel to recognize which changes
  1685. may adversely affect the implemetation of the security policy of
  1686. the system, and to track these changes to the evaluated product
  1687. through the use of configuration management, RAMP will permit a
  1688. vendor to maintain the rating of the evaluated product without
  1689. having to re-evaluate the new version.  Because changes from one
  1690. version of an operating system to the next version may affect the
  1691. security features and assurances of that operating system,
  1692. configuration management is an integral part of RAMP.  For a
  1693. system to maintain its rating under this program, the NCSC shall
  1694. be assured, through the vendor's configuration management
  1695. procedures, that the changes made have not adversely affected the
  1696. implementation of the security mechanisms and assurances of the
  1697. system.
  1698.  
  1699. Each RAMP participant shall develop an NCSC approved Rating
  1700. Maintenance Plan (RMPlan) which includes a detailed Configuration
  1701. Management Plan (CMP) to support the rating maintenance process.
  1702. This requirement applies to all systems participating in RAMP,
  1703. regardless of class.  For further information about the RAMP
  1704. program and about configuration management requirements for RAMP,
  1705. contact:
  1706.  
  1707.            National Computer Security Center
  1708.            9800 Savage Road
  1709.            Fort George G. Meade, MD  20755⌐6000
  1710.         
  1711.            Attention: Chief, Requirements and Resources Division
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.                                 26
  1731.  
  1732.  
  1733.  
  1734. 12.  CONFIGURATION MANAGEMENT SUMMARY
  1735.  
  1736. The assurance provided by configuration management is beneficial
  1737. to all systems. It is a requirement for trusted systems for
  1738. classes B2 and above that a configuration management system "be
  1739. in place that maintains control of changes to the descriptive
  1740. top-level specification, other design data, implementation
  1741. documentation, source code, the running version of the object
  1742. code, and test fixtures and documentation"[1] (Requirements 1, 2,
  1743. 3, 4, 5, 6, 7, 8).  Although configuration management is a
  1744. requirement for trusted systems for classes B2 and above, it
  1745. should be in place in all systems regardless of class rating, or
  1746. if the system has a rating at all.   
  1747.  
  1748. Successful configuration management is built around four main
  1749. objectives: control, identification, accounting, and auditing. 
  1750. Through the accomplishment of these objectives, configuration
  1751. management is able to maintain control over the TCB and protect
  1752. it against "unauthorized changes that could cause protection
  1753. mechanisms to malfunction or be bypassed completely."[1]  Even
  1754. for those aspects of the system which are not security-relevant,
  1755. configuration management is still a valuable method of ensuring
  1756. that all of the properties of a system are maintained after a
  1757. change.  It is very important to the success of configuration
  1758. management that a formal configuration management plan be adhered
  1759. to during the life-cycle of the system.
  1760.  
  1761. A successful configuration management plan should begin with
  1762. early and complete definition of configuration management goals,
  1763. scope, and procedures.  The success of configuration management
  1764. is dependent upon accuracy.  Changes should be identified and
  1765. accounted for accurately, and after the change is completed, the
  1766. change, and all affected parts of the system should be thoroughly
  1767. documented and tested.  
  1768.  
  1769. Configuration management provides control and traceability for
  1770. all changes made to the system.  Changes in progress are able to
  1771. be monitored through configuration status accounting information
  1772. in order to control the change and to evaluate its impact on
  1773. other parts of the system.  
  1774.  
  1775. An important part of having a successful configuration management
  1776. plan is that the people involved with it must adhere to its
  1777. procedures in order to keep all documentation current and the
  1778. status of changes up-to-date.  
  1779.  
  1780. With a firm and well documented configuration management plan in 
  1781. place, the occurrence of any unnecessary or duplicate changes 
  1782. will be reduced greatly and any necessary changes that are 
  1783.  
  1784.                                 27
  1785.  
  1786.  
  1787.  
  1788. required should be able to be identified with great ease.  An
  1789. effective configuration management system should be able to show
  1790. what was supposed to have been built, what was built, and what is
  1791. presently being built. 
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.                                 28
  1839.  
  1840.  
  1841.  
  1842. APPENDIX A:  AUTOMATED TOOLS
  1843.  
  1844. Automated tools may be used to perform some of the configuration
  1845. management functions that previously had to be performed
  1846. manually.  A data base management system, even with just a
  1847. limited query system, may be used to perform the configuration
  1848. audit and status accounting functions of configuration
  1849. management.  The principle behind using automated systems is that
  1850. text, both from source code and other documents involved in the
  1851. development of the system, can be entered into a Master Library
  1852. and modified only through the use of the automated system.  This
  1853. prevents anyone from performing a change without having the
  1854. proper authorization to access the configuration data base.  "In
  1855. general, only one program librarian, who should be the project
  1856. manager or someone directly responsible to the manager, should
  1857. have write access to the Master Library during development."[2]  
  1858.  
  1859. A number of software developers have created software control
  1860. facilities that are currently available to be used for
  1861. configuration status accounting.  A brief discussion of two of
  1862. these systems follows.
  1863.  
  1864.  
  1865. A.1   UNIX (1) SCCS
  1866.  
  1867. "Under the Unix (1) system, the make utility, and the elements
  1868. admin, get, prs, and delta, which comprise the Source Code
  1869. Control System, provide a basic configuration accounting system. 
  1870. Initially a directory is created using the mkdir function.  At
  1871. this point, it is possible to use the owner, group, world
  1872. protection scheme provided by Unix (1) to protect the directory. 
  1873. In addition a list of login identifiers is created which
  1874. specifies who may update each element to be processed by SCCS."
  1875. [2]
  1876.  
  1877. Following directory initiation, each document is entered using
  1878. the admin -n function.  Each entry that is made is referred to as
  1879. an element.  As each update is made to a new element, a new
  1880. generation of that element, known as a delta, is created.  The
  1881. name of each element that is stored in a file by SCCS is preceded
  1882. by "s.".  If a file is added to the directory that does not
  1883. contain this prefix, it is ignored by the SCCS function calls. 
  1884. When the admin function is called, a number of arguments may be
  1885. specified that "specify parameters that may affect the file, and
  1886. may be changed by a subsequent call to admin.  The alogin
  1887. argument is used to create the equivalent of an access control
  1888. list by listing the login names of users who can apply the delta
  1889. function to the element, thus creating either a new generation 
  1890.  
  1891. (1) UNIX is a registered trademark of AT&T Bell Laboratories
  1892.                                 29  
  1893.  
  1894.  
  1895.  
  1896. (delta) or variant branch."[2]
  1897.  
  1898. The initial release, or initial delta, of each code module is
  1899. entered into the SCCS directory through the admin -n function,
  1900. thus creating the Master Library.  The programmer may update each 
  1901. module in the Master Library by using the get -e function "which
  1902. indicates that the module will be edited and then the completed
  1903. document will be reentered into the directory using the delta
  1904. function.  As long as the module being edited was extracted from
  1905. the SCCS directory using get -e, it can be returned to the
  1906. library using delta, and all necessary update information will be
  1907. entered with it.  The get function can be used to extract a copy
  1908. of any document, but after it is edited it cannot be reentered
  1909. into the library."[2]
  1910.  
  1911. "SCCS provides the capability to specify a software build by the
  1912. way it assigns an SCCS Identification Number (SID) to each output
  1913. of the delta function."[2]  One can get any version of a text or
  1914. source code by specifying the appropriate SID.  "There are
  1915. straightforward rules regarding how to specify the particular SID
  1916. desired when get is called.  If no SID is specified, the latest
  1917. release and level is provided."  The SID of the resulting call to
  1918. delta is affected by the SID used when get -e is called.[2]
  1919.  
  1920. "The function prs allows for configuration accounting, since it
  1921. extracts information from the s. files in the SCCS directory and
  1922. prints them out for the user.  Prs can be used to quickly create
  1923. reports, listing one or two important values such as the last
  1924. modified date for many SCCS files, or many values for one or two
  1925. file.  Larger reports can also be processed and created using an
  1926. editor."[2] 
  1927.  
  1928.  
  1929. A.2  VAX DEC/CMS 
  1930.  
  1931. "VAX DEC/CMS [7] is also used to track a history of each text
  1932. file stored in a CMS directory, but CMS does significantly more
  1933. auditing and cross-checking than admin does.  For example, if an
  1934. editor is used directly to modify a file in a CMS directory, any
  1935. further use by CMS of that file generates a warning meassage. 
  1936. Any files entered into a CMS directory by other than the CMS
  1937. utility will cause CMS itself to issue a warning message when it
  1938. is invoked for that directory.  Otherwise, the process of
  1939. configuration accounting is similar to SCCS.
  1940.  
  1941. The CMS CREATE LIBRARY function causes a directory to be set up,
  1942. and initial logging to start.  The project manager enters each
  1943. element into the directory by using the CMS CREATE ELEMENT
  1944. function.  One must RESERVE an element of a library to modify it,
  1945.  
  1946.                                 30
  1947.  
  1948.  
  1949.  
  1950. and it can only be put back into the library using the REPLACE
  1951. function.  If someone else has RESERVEd an element between the
  1952. original programmer's RESERVE and REPLACE calls, a warning is
  1953. issued to both programmers and the occurrence is logged.  To get
  1954. a sample copy of the text, such as a program source, the FETCH
  1955. function will generate the latest generation or any specified
  1956. generation of an element, but will not allow an edited copy to be
  1957. reinserted into the library.  The SHOW function can be used to
  1958. audit the information about each element in the library.
  1959.  
  1960. Differences between SCCS and DEC/CMS appear concerning software
  1961. builds.  In Unix (1) a build must be either described in a
  1962. makefile, or else each element to be used in a build must be
  1963. retrieved from the SCCS directory using get, placed in another
  1964. directory, and the makefile then may refer to these source files
  1965. to create the executable build.  In CMS, the process of selecting
  1966. only a subset of source files, including some which are not the
  1967. most current, is automated by the use of class and group
  1968. mechanisms.  To explain how this works, one must understand the
  1969. CMS concepts of generations and variants.  Each generation of a
  1970. file corresponds to a Unix (1) delta.  Generations are normally
  1971. numbered in ascending order.  CMS also has the capability of
  1972. creating a variant development line to any generation by
  1973. specifying in the REPLACE function a variant name.  For example,
  1974. if one RESERVEs generation 3 of an element, then performs a
  1975. REPLACE/VARIANT = T, this will create generation 3T1 which may
  1976. then be developed separately from generation 3.  The first time
  1977. this is used, the equivalent of an SCCS branch delta is created. 
  1978. Branches themselves can have branches, a capability that SCCS
  1979. does not have.
  1980.  
  1981. A group can be defined within a CMS directory, using the CMS
  1982. CREATE GROUP, and CMS INSERT ELEMENT functions.  A group is
  1983. composed of all generations, including variant generations, of
  1984. all elements inserted into the group.  Groups can be included
  1985. within other groups.  Groups can be defined with a non-empty
  1986. intersection so that they have overlapping membership.
  1987.  
  1988. The CMS CREATE CLASS function, together with the CMS INSERT
  1989. GENERATION function, can be used to specify the exact elements of
  1990. a software build, and the DESCRIPTION file can then refer to the
  1991. entire class by using the /GENERATION=classname qualifier on
  1992. either the source or action line of a dependency rule.  The
  1993. makefile required by Unix (1) SCCS can be much more complex when
  1994. it is required to describe a software build for intermediate
  1995. testing."[2]   
  1996.  
  1997.  
  1998. (1) Unix is a registered trade mark of Bell Laboratories
  1999.      
  2000.                                 31
  2001.  
  2002.  
  2003.  
  2004. GLOSSARY
  2005.  
  2006. Automatic Data Processing (ADP) System - An assembly of computer
  2007. hardware, firmware, and software configured for the purpose of
  2008. classifying, sorting, calculating, computing, summarizing,
  2009. transmitting and receiving, storing, and retrieving data with a
  2010. minimum of human intervention.[1]
  2011.  
  2012. Baseline - A set of critical observations or data used for a
  2013. comparison or a control.  A baseline indicates a cutoff point in
  2014. the design and development of a configuration item beyond which
  2015. configuration does not evolve without undergoing strict
  2016. configuration control policies and procedures.
  2017.  
  2018. Configuration Accounting - The recording and reporting of
  2019. configuration item descriptions and all departures from the
  2020. baseline during design and production.[2]  
  2021.  
  2022. Configuration Audit - An independent review of computer software
  2023. for the purpose of assessing compliance with established
  2024. requirements, standards, and baselines.[2]
  2025.  
  2026. Configuration Control - The process of controlling modifications
  2027. to the system's design, hardware, firmware, software, and
  2028. documentation which provides sufficient assurance the system is
  2029. protected against the introduction of improper modification prior
  2030. to, during, and after system implementation.
  2031.  
  2032. Configuration Control Board (CCB) - An established committee that
  2033. is the final authority on all proposed changes to the ADP system.
  2034.  
  2035. Configuration Identification - The identifying of the system
  2036. configuration throughout the design, development, test, and
  2037. production tasks.   
  2038.  
  2039. Configuration Item  - The smallest component of hardware,
  2040. software, firmware, documentation, or any of its discrete
  2041. portions, which is tracked by the configuration management
  2042. system.
  2043.  
  2044. Configuration Management - The management of changes made to a
  2045. system's hardware, software, firmware, documentation, tests, test
  2046. fixtures, and test documentation throughout the development and
  2047. operational life of the system.
  2048.  
  2049. Descriptive Top-Level Specification (DTLS) - A top-level 
  2050. specification that is written in a natural language (e.g.,
  2051. English), an informal program design notation, or a combination
  2052. of the two.[1]
  2053.  
  2054.                                 32
  2055.  
  2056.  
  2057.  
  2058. Firmware - Equipments or devices within which computer 
  2059. programming instructions necessary to the performance of the 
  2060. device's discrete functions are electrically embedded in such a  
  2061. manner that they cannot be electrically altered during normal
  2062. device operations.[3]
  2063.  
  2064. Formal Security Policy Model - An accurate and precise
  2065. description, in a formal, mathematical language, of the security
  2066. policy supported by the system.
  2067.  
  2068. Formal Top-Level Specification - A top-level specification that
  2069. is written in a formal mathematical language to allow theorems
  2070. showing the correspondence of the system specifications to its
  2071. formal requirements to be hypothesized and formally proven.[1]
  2072.  
  2073. Granularity - The relative fineness or courseness by which a
  2074. mechanism can be adjusted.  The phrase "the granularity of a
  2075. single user" means the access control mechanism can be adjusted
  2076. to include or exclude any single user.[1] 
  2077.  
  2078. Hardware - The electric, electronic, and mechanical equipment
  2079. used for processing data.[3]
  2080.  
  2081. Informal Security Policy Model - An accurate and precise
  2082. description, in a natural language (e.g., English), of the
  2083. security policy supported by the system. 
  2084.  
  2085. Software - Various programming aids that are frequently supplied
  2086. by the manufacturers to facilitate the purchaser's efficient
  2087. operation of the equipment.  Such software items include various
  2088. assemblers, generators, subroutine libraries, compilers,
  2089. operating systems, and industry application programs.[6]
  2090.  
  2091. Tools - The means for achieving an end result.  The tools
  2092. referred to in this guideline are documentation, procedures, and
  2093. the organizational body, i.e., the CCB, which all contribute to
  2094. achieving the control objective of configuration management. 
  2095.  
  2096. Trusted Computing Base (TCB) - The totality of protection
  2097. mechanisms within a computer system -- including hardware,
  2098. firmware, and software -- the combination of which is responsible
  2099. for enforcing a security policy.  A TCB consists of one or more
  2100. components that together enforce a unified security policy over a
  2101. product or system.  The ability of a TCB to correctly enforce a
  2102. security policy depends solely on the mechanisms within the TCB
  2103. and on the correct input by system administrative personnel of
  2104. parameters (e.g., a user's clearance) related to the security
  2105. policy.[1]
  2106.  
  2107.  
  2108.                                 33
  2109.  
  2110.  
  2111.  
  2112. REFERENCES
  2113.  
  2114. 1.   National Computer Security Center, DOD Trusted Computer     
  2115.      System Evaluation Criteria, DOD, DOD 5200.28-STD, 1985.
  2116.  
  2117. 2.   Brown, R. Leonard, "Configuration Management for Development 
  2118.      of a Secure Computer System", ATR-88(3777-12)-1, The        
  2119.      Aerospace Corporation, 1987.
  2120.  
  2121. 3.   Subcommittee on Automated Information System Security,      
  2122.      Working Group #3, "Dictionary of Computer Security          
  2123.      Terminology", 23 November 1986.
  2124.  
  2125. 4.   Bersoff, Edward H., Henderson, Vilas D., Siegal, Stanley G., 
  2126.      Software Configuration Management, Prentice Hall, Inc.,     
  2127.      1980.  
  2128.  
  2129. 5.   Samaras, Thomas T., Czerwinski, Frank L., Fundamentals of   
  2130.      Configuration Management, Wiley-Interscience, 1971.
  2131.  
  2132. 6.   Sipple, Charles J., Computer Dictionary, Fourth Edition,    
  2133.      Howard W. Sams & Co., 1985.
  2134.  
  2135. 7.   Digital Equipment Corporation, VAX DEC/CMS Reference Manual,
  2136.      AA-L372B-TE, Digital Equipment Corporation, 1984.
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.                                 34 
  2163.  
  2164.  
  2165.  
  2166.  
  2167.                                               NCSC-TG-001 
  2168.                                          Library No. S-228,470 
  2169.  
  2170.  
  2171.  
  2172.  
  2173.                           FOREWORD 
  2174.  
  2175.  
  2176.  
  2177.  
  2178. This publication, "A Guide to Understanding Audit in Trusted 
  2179. Systems," is being issued by the National Computer Security 
  2180. Center (NCSC) under the authority of and in accordance with 
  2181. Department of Defense (DoD) Directive 5215.1.  The guidelines 
  2182. described in this document provide a set of good practices 
  2183. related to the use of auditing in automatic data processing 
  2184. systems employed for processing classified and other sensitive 
  2185. information. Recommendations for revision to this guideline are 
  2186. encouraged and will be reviewed biannually by the National 
  2187. Computer Security Center through a formal review process.  
  2188. Address all proposals for revision through appropriate channels 
  2189. to:  
  2190.                  
  2191.        National Computer Security Center 
  2192.        9800 Savage Road 
  2193.        Fort George G. Meade, MD  20755-6000  
  2194.             
  2195.        Attention: Chief, Computer Security Technical Guidelines 
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203. _________________________________ 
  2204. Patrick R. Gallagher, Jr.                     28 July 1987 
  2205. Director 
  2206. National Computer Security Center  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.   
  2215.                                    i 
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.                           ACKNOWLEDGEMENTS 
  2224.  
  2225.  
  2226.  
  2227. Special recognition is extended to James N. Menendez, National 
  2228. Computer Security Center (NCSC), as project manager of the 
  2229. preparation and production of this document. 
  2230.  
  2231. Acknowledgement is also given to the NCSC Product Evaluations 
  2232. Team who provided the technical guidance that helped form this 
  2233. document and to those members of the computer security community 
  2234. who contributed their time and expertise by actively
  2235. participating in the review of this document. 
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.                                    ii 
  2270.  
  2271.  
  2272.  
  2273.                           CONTENTS 
  2274.  
  2275.  
  2276. FOREWORD ...................................................  i 
  2277.  
  2278. ACKNOWLEDGEMENTS ...........................................  ii 
  2279.  
  2280. CONTENTS ...................................................  iii
  2281.  
  2282. PREFACE .....................................................  v 
  2283.  
  2284. 1. INTRODUCTION .............................................  1 
  2285.  
  2286.     1.1 HISTORY OF THE NATIONAL COMPUTER SECURITY CENTER ....  1 
  2287.     1.2 GOAL OF THE NATIONAL COMPUTER SECURITY CENTER .......  1 
  2288.  
  2289. 2. PURPOSE ..................................................  2 
  2290.  
  2291. 3. SCOPE ....................................................  3 
  2292.  
  2293. 4. CONTROL OBJECTIVES .......................................  4 
  2294.  
  2295. 5. OVERVIEW OF AUDITING PRINCIPLES ..........................  8 
  2296.  
  2297.     5.1 PURPOSE OF THE AUDIT MECHANISM.......................  8 
  2298.     5.2 USERS OF THE AUDIT MECHANISM.........................  8 
  2299.     5.3 ASPECTS OF EFFECTIVE AUDITING .......................  9 
  2300.  
  2301.          5.3.1 Identification/Authentication ................  9 
  2302.          5.3.2 Administrative ...............................  10
  2303.          5.3.3 System Design ................................  10
  2304.  
  2305.     5.4 SECURITY OF THE AUDIT ...............................  10 
  2306.  
  2307. 6. MEETING THE CRITERIA REQUIREMENTS ........................  12
  2308.  
  2309.     6.1 THE C2 AUDIT REQUIREMENT ............................  12
  2310.  
  2311.          6.1.1 Auditable Events .............................  12
  2312.          6.1.2 Auditable Information ........................  12
  2313.          6.1.3 Audit Basis ..................................  13
  2314.  
  2315.     6.2 THE B1 AUDIT REQUIREMENT ............................  13
  2316.  
  2317.          6.2.1 Auditable Events .............................  13
  2318.          6.2.2 Auditable Information ........................  13
  2319.          6.2.3 Audit Basis ..................................  14
  2320.  
  2321.                                   iii 
  2322.      
  2323.  
  2324.                           CONTENTS (Continued) 
  2325.  
  2326.     6.3 THE B2 AUDIT REQUIREMENT ............................  14
  2327.  
  2328.          6.3.1 Auditable Events .............................  14
  2329.          6.3.2 Auditable Information ........................  14
  2330.          6.3.3 Audit Basis ..................................  14
  2331.  
  2332.     6.4 THE B3 AUDIT REQUIREMENT ............................  15
  2333.  
  2334.          6.4.1 Auditable Events .............................  15
  2335.          6.4.2 Auditable Information ........................  15
  2336.          6.4.3 Audit Basis ..................................  15
  2337.  
  2338.     6.5 THE A1 AUDIT REQUIREMENT ............................  16
  2339.  
  2340.          6.5.1 Auditable Events .............................  16
  2341.          6.5.2 Auditable Information ........................  16
  2342.          6.5.3 Audit Basis ..................................  16 
  2343.     
  2344. 7. POSSIBLE IMPLEMENTATION METHODS ..........................  17
  2345.  
  2346.     7.1 PRE/POST SELECTION OF AUDITABLE EVENTS ..............  17 
  2347.  
  2348.          7.1.1 Pre-Selection ................................  17
  2349.          7.1.2 Post-Selection ...............................  18
  2350.  
  2351.     7.2 DATA COMPRESSION ....................................  18
  2352.     7.3 MULTIPLE AUDIT TRAILS ...............................  19
  2353.     7.4 PHYSICAL STORAGE ....................................  19
  2354.     7.5 WRITE-ONCE DEVICE ...................................  20
  2355.     7.6 FORWARDING AUDIT DATA ...............................  21
  2356.  
  2357. 8. OTHER TOPICS .............................................  22
  2358.  
  2359.     8.1 AUDIT DATA REDUCTION ................................  22
  2360.     8.2 AVAILABILITY OF AUDIT DATA ..........................  22
  2361.     8.3 AUDIT DATA RETENTION ................................  22
  2362.     8.4 TESTING .............................................  23
  2363.     8.5 DOCUMENTATION .......................................  23
  2364.     8.6 UNAVOIDABLE SECURITY RISKS ..........................  24
  2365.  
  2366.          8.6.1 Auditing Administrators/Insider Threat .......  24 
  2367.          8.6.2 Data Loss ....................................  25
  2368.  
  2369. 9. AUDIT SUMMARY ...........................................  26 
  2370.  
  2371. GLOSSARY
  2372.  
  2373. REFERENCES ..............................................  27 
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.                           PREFACE                
  2382.  
  2383.  
  2384.  
  2385.  
  2386. Throughout this guideline there will be recommendations made that
  2387. are not included in the Trusted Computer System Evaluation 
  2388. Criteria (the Criteria) as requirements.  Any recommendations 
  2389. that are not in the Criteria will be prefaced by the word 
  2390. "should," whereas all requirements will be prefaced by the word 
  2391. "shall."  It is hoped that this will help to avoid any confusion.
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.                                    v 
  2431.                                                                 1
  2432.  
  2433.  
  2434.  
  2435. 1.   INTRODUCTION 
  2436.  
  2437. 1.1   History of the National Computer Security Center 
  2438.  
  2439. The DoD Computer Security Center (DoDCSC) was established in 
  2440. January 1981 for the purpose of expanding on the work started by 
  2441. the DoD Security Initiative.  Accordingly, the Director, National
  2442. Computer Security Center, has the responsibility for establishing
  2443. and publishing standards and guidelines for all areas of computer
  2444. security.  In 1985, DoDCSC's name was changed to the National 
  2445. Computer Security Center to reflect its responsibility for 
  2446. computer security throughout the federal government. 
  2447.  
  2448.  
  2449. 1.2   Goal of the National Computer Security Center 
  2450.  
  2451. The main goal of the National Computer Security Center is to 
  2452. encourage the widespread availability of trusted computer 
  2453. systems.  In support of that goal a metric was created, the DoD 
  2454. Trusted Computer System Evaluation Criteria (the Criteria), 
  2455. against which computer systems could be evaluated for security.  
  2456. The Criteria was originally published on 15 August 1983 as CSC- 
  2457. STD-001-83.  In December 1985 the DoD adopted it, with a few 
  2458. changes, as a DoD Standard, DoD 5200.28-STD.  DoD Directive 
  2459. 5200.28, "Security Requirements for Automatic Data Processing 
  2460. (ADP) Systems" has been written to, among other things, require 
  2461. the Department of Defense Trusted Computer System Evaluation 
  2462. Criteria to be used throughout the DoD.  The Criteria is the 
  2463. standard used for evaluating the effectiveness of security 
  2464. controls built into ADP systems.  The Criteria is divided into 
  2465. four divisions: D, C, B, and A, ordered in a hierarchical manner 
  2466. with the highest division (A) being reserved for systems 
  2467. providing the best available level of assurance.  Within 
  2468. divisions C and B there are a number of subdivisions known as 
  2469. classes, which are also ordered in a hierarchical manner to 
  2470. represent different levels of security in these classes.   
  2471.  
  2472.  
  2473. 2.   PURPOSE 
  2474.  
  2475. For Criteria classes C2 through A1 the Criteria requires that a 
  2476. user's actions be open to scrutiny by means of an audit.  The 
  2477. audit process of a secure system is the process of recording, 
  2478. examining, and reviewing any or all security-relevant activities 
  2479. on the system.  This guideline is intended to discuss issues 
  2480. involved in implementing and evaluating an audit mechanism.  The 
  2481. purpose of this document is twofold.  It provides guidance to 
  2482. manufacturers on how to design and incorporate an effective audit
  2483. mechanism into their system, and it provides guidance to 
  2484. implementors on how to make effective use of the audit 
  2485.                                 1
  2486.  
  2487.  
  2488.  
  2489. capabilities provided by trusted systems.  This document contains
  2490. suggestions as to what information should be recorded on the 
  2491. audit trail, how the audit should be conducted, and what 
  2492. protective measures should be accorded to the audit resources. 
  2493.  
  2494. Any examples in this document are not to be construed as the only
  2495. implementations that will satisfy the Criteria requirement.  The 
  2496. examples are merely suggestions of appropriate implementations.  
  2497. The recommendations in this document are also not to be construed
  2498. as supplementary requirements to the Criteria. The Criteria is 
  2499. the only metric against which systems are to be evaluated.   
  2500.  
  2501. This guideline is part of an on-going program to provide helpful 
  2502. guidance on Criteria issues and the features they address. 
  2503.  
  2504.  
  2505. 3.   SCOPE 
  2506.  
  2507. An important security feature of Criteria classes C2 through A1 
  2508. is the ability of the ADP system to audit any or all of the 
  2509. activities on the system.  This guideline will discuss auditing 
  2510. and the features of audit facilities as they apply to computer 
  2511. systems and products that are being built with the intention of 
  2512. meeting the requirements of the Criteria. 
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.                                 2 
  2540.  
  2541.  
  2542.  
  2543. 4.  CONTROL OBJECTIVES
  2544.  
  2545. The Trusted Computer System Evaluation Criteria gives the 
  2546. following as the Accountability Control Objective: 
  2547.  
  2548.     "Systems that are used to process or handle classified or 
  2549.      other sensitive information must assure individual          
  2550.      accountability whenever either a mandatory or               
  2551.      discretionary security policy is invoked.  Furthermore, to  
  2552.      assure accountability the capability must exist for an 
  2553.      authorized and competent agent to access and evaluate       
  2554.      accountability information by a secure means, within a      
  2555.      reasonable amount of time and without undue difficulty."(1) 
  2556.  
  2557. The Accountability Control Objective as it relates to auditing 
  2558. leads to the following control objective for auditing: 
  2559.  
  2560.     "A trusted computer system must provide authorized personnel 
  2561.      with the ability to audit any action that can potentially  
  2562.      cause access to, generation of, or effect the release 
  2563.      of classified or sensitive information.  The audit 
  2564.      data will be selectively acquired based on the auditing 
  2565.      needs of a particular installation and/or application.      
  2566.      However, there must be sufficient granularity in the audit  
  2567.      data to support tracing the auditable events to a specific  
  2568.      individual (or process) who has taken the actions or on     
  2569.      whose behalf the actions were taken."(1)   
  2570.   
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.                                 3 
  2594.  
  2595.  
  2596.  
  2597. 5.   OVERVIEW OF AUDITING PRINCIPLES 
  2598.  
  2599. Audit trails are used to detect and deter penetration of a
  2600. computer system and to reveal usage that identifies misuse.  At
  2601. the discretion of the auditor, audit trails may be limited to
  2602. specific events or may encompass all of the activities on a
  2603. system.  Although not required by the TCSEC, it should be
  2604. possible for the target of the audit mechanism to be either a
  2605. subject or an object.  That is to say, the audit mechanism should
  2606. be capable of monitoring every time John accessed the system as
  2607. well as every time the nuclear reactor file was accessed; and
  2608. likewise every time John accessed the nuclear reactor file. 
  2609.  
  2610.  
  2611. 5.1   Purpose of the Audit Mechanism 
  2612.  
  2613. The audit mechanism of a computer system has five important
  2614. security goals.  First, the audit mechanism must "allow the
  2615. review of patterns of access to individual objects, access
  2616. histories of specific processes and individuals, and the use of
  2617. the various protection mechanisms supported by the system and
  2618. their effectiveness."(2)  Second, the audit mechanism must allow
  2619. discovery of both users' and outsiders' repeated attempts to
  2620. bypass the protection mechanisms.  Third, the audit mechanism
  2621. must allow discovery of any use of privileges that may occur when
  2622. a user assumes a functionality with privileges greater than his
  2623. or her own, i.e., programmer to administrator.  In this case
  2624. there may be no bypass of security controls but nevertheless a
  2625. violation is made possible.  Fourth, the audit mechanism must act
  2626. as a deterrent against perpetrators' habitual attempts to bypass
  2627. the system protection mechanisms.  However, to act as a
  2628. deterrent, the perpetrator must be aware of the audit mechanism's
  2629. existence and its active use to detect any attempts to bypass
  2630. system protection mechanisms.  The fifth goal of the audit
  2631. mechanism is to supply "an additional form of user assurance that
  2632. attempts to bypass the protection mechanisms are recorded and
  2633. discovered."(2)  Even if the attempt to bypass the protection
  2634. mechanism is successful, the audit trail will still provide
  2635. assurance by its ability to aid in assessing the damage done by
  2636. the violation, thus improving the system's ability to control the
  2637. damage. 
  2638.  
  2639.  
  2640. 5.2.  Users of the Audit Mechanism 
  2641.  
  2642. "The users of the audit mechanism can be divided into two groups. 
  2643. The first group consists of the auditor, who is an individual
  2644. with administrative duties, who selects the events to be audited
  2645. on the system, sets up the audit flags which enable the recording
  2646.  
  2647.                                 4
  2648.  
  2649.  
  2650.  
  2651. of those events, and analyzes the trail of audit events."(2)  In
  2652. some systems the duties of the auditor may be encompassed in the
  2653. duties of the system security administrator.  Also, at the lower
  2654. classes, the auditor role may be performed by the system
  2655. administrator.  This document will refer to the person
  2656. responsible for auditing as the system security administrator,
  2657. although it is understood that the auditing guidelines may apply
  2658. to system administrators and/or system security administrators
  2659. and/or a separate auditor in some ADP systems.   
  2660.  
  2661. "The second group of users of the audit mechanism consists of the
  2662. system users themselves; this group includes the administrators,
  2663. the operators, the system programmers, and all other users.  They
  2664. are considered users of the audit mechanism not only because
  2665. they, and their programs, generate audit events,"(2) but because
  2666. they must understand that the audit mechanism exists and what
  2667. impact it has on them.  This is important because otherwise the
  2668. user deterrence and user assurance goals of the audit mechanism
  2669. cannot be achieved.    
  2670.  
  2671.  
  2672. 5.3  Aspects of Effective Auditing 
  2673.  
  2674.  
  2675. 5.3.1.  Identification/Authentication 
  2676.  
  2677.  Logging in on a system normally requires that a user enter the 
  2678. specified form of identification (e.g., login ID, magnetic strip) 
  2679. and a password (or some other mechanism) for authentication. 
  2680. Whether this information is valid or invalid, the execution of
  2681. the login procedure is an auditable event and the identification
  2682. entered may be considered to be auditable information.  It is
  2683. recommended that authentication information, such as passwords,
  2684. not be forwarded to the audit trail.  In the event that the
  2685. identification entered is not recognized as being valid, the
  2686. system should also omit this information from the audit trail. 
  2687. The reason for this is that a user may have entered a password
  2688. when the system expected a login ID.  If the information had been
  2689. written to the audit trail, it would compromise the password and
  2690. the security of the user. 
  2691.  
  2692. There are, however, environments where the risk involved in 
  2693. recording invalid identification information is reduced.  In
  2694. systems that support formatted terminals, the likelihood of
  2695. password entry in the identification field is markedly reduced,
  2696. hence the recording of identification information would pose no
  2697. major threat.  The benefit of recording the identification
  2698. information is that break-in attempts would be easier to detect
  2699. and identifying the perpetrator would also be assisted.  The 
  2700.  
  2701.                                  5
  2702.  
  2703.  
  2704.  
  2705. information gathered here may be necessary for any legal 
  2706. prosecution that may follow a security  violation.    
  2707.  
  2708.  
  2709. 5.3.2  Administrative 
  2710.  
  2711. All systems rated at class C2 or higher shall have audit 
  2712. capabilities and personnel designated as responsible for the
  2713. audit procedures.  For the C2 and B1 classes, the duties of the
  2714. system operators could encompass all functions including those of
  2715. the auditor.  Starting at the B2 class, there is a requirement
  2716. for the TCB to support separate operator and administrator
  2717. functions.  In addition, at the B3 class and above, there is a
  2718. requirement to identify the system security administrator
  2719. functions.  When one assumes the system security administrator
  2720. role on the system, it shall be after taking distinct auditable
  2721. action, e.g., login procedure.  When one with the privilege of
  2722. assuming the role is on the system, the act of assuming that role
  2723. shall also be an auditable event. 
  2724.  
  2725.  
  2726. 5.3.3   System Design 
  2727.   
  2728. The system design should include a mechanism to invoke the audit 
  2729. function at the request of the system security administrator.  A 
  2730. mechanism should also be included to determine if the event is to
  2731. be selected for inclusion as an audit trail entry.  If
  2732. pre-selection of events is not implemented, then all auditable
  2733. events should be forwarded to the audit trail.  The Criteria
  2734. requirement for the administrator to be able to select events
  2735. based on user identity and/or object security classification must
  2736. still be able to be satisfied.  This requirement can be met by
  2737. allowing post-selection of events through the use of queries. 
  2738. Whatever reduction tool is used to analyze the audit trail shall
  2739. be provided by the vendor.  
  2740.  
  2741.  
  2742. 5.4   Security of the Audit 
  2743.  
  2744. Audit trail software, as well as the audit trail itself, should
  2745. be protected by the Trusted Computing Base and should be subject
  2746. to strict access controls.  The security requirements of the
  2747. audit mechanism are the following: 
  2748.  
  2749. (1)  The event recording mechanism shall be part of the TCB and  
  2750.      shall be protected from unauthorized modification or        
  2751.      circumvention. 
  2752.  
  2753. (2)  The audit trail itself shall be protected by the TCB from   
  2754.  
  2755.                                  6
  2756.  
  2757.  
  2758.  
  2759.      unauthorized access (i.e., only the audit personnel may     
  2760.      access the audit trail).  The audit trail shall also be     
  2761.      protected from unauthorized modification.  
  2762.  
  2763. (3)  The audit-event enabling/disabling mechanism shall be part  
  2764.      of the TCB and shall remain inaccessible to the unauthorized 
  2765.      users.(2)  
  2766.  
  2767. At a minimum, the data on the audit trail should be considered to
  2768. be sensitive, and the audit trail itself shall be considered to
  2769. be as sensitive as the most sensitive data contained in the
  2770. system. 
  2771.  
  2772. When the medium containing the audit trail is physically removed 
  2773. from the ADP system, the medium should be accorded the physical 
  2774. protection required for the highest sensitivity level of data 
  2775. contained in the system. 
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.                                  7 
  2810.  
  2811.  
  2812.  
  2813. 6.   MEETING THE CRITERIA REQUIREMENTS 
  2814.  
  2815. This section of the guideline will discuss the audit requirements
  2816. in the Criteria and will present a number of additional 
  2817. recommendations.  There are four levels of audit requirements. 
  2818. The first level is at the C2 Criteria class and the requirements 
  2819. continue evolving through the B3 Criteria class.   At each of
  2820. these levels, the guideline will list some of the events which
  2821. should be auditable, what information should be on the audit
  2822. trail, and on what basis events may be selected to be audited. 
  2823. All of the requirements will be prefaced by the word "shall," and
  2824. any additional recommendations will be prefaced by the word
  2825. "should." 
  2826.  
  2827.  
  2828. 6.1   The C2 Audit Requirement 
  2829.  
  2830. 6.1.1   Auditable Events 
  2831.   
  2832. The following events shall be subject to audit at the C2 class:  
  2833.  
  2834.    * Use of identification and authentication mechanisms 
  2835.  
  2836.    * Introduction of objects into a user's address space  
  2837.  
  2838.    * Deletion of objects from a user's address space 
  2839.  
  2840.    * Actions taken by computer operators and system              
  2841.      administrators and/or system security administrators    
  2842.  
  2843.    * All security-relevant events (as defined in Section 5 of    
  2844.      this guideline) 
  2845.  
  2846.    * Production of printed output 
  2847.  
  2848. 6.1.2   Auditable Information 
  2849.  
  2850. The following information shall be recorded on the audit trail at
  2851. the C2 class:  
  2852.  
  2853.    * Date and time of the event 
  2854.  
  2855.    * The unique identifier on whose behalf the subject generating 
  2856.      the event was operating 
  2857.  
  2858.    * Type of event 
  2859.  
  2860.    * Success or failure of the event 
  2861.  
  2862.  
  2863.                                 8
  2864.  
  2865.  
  2866.  
  2867.    * Origin of the request (e.g., terminal ID) for               
  2868.      identification/authentication events 
  2869.   
  2870.    * Name of object introduced, accessed, or deleted from a      
  2871.     user's address space 
  2872.  
  2873.    * Description of modifications made by the system             
  2874.      administrator to the user/system security databases   
  2875.  
  2876.  
  2877. 6.1.3   Audit Basis 
  2878.  
  2879. At the C2 level, the ADP System Administrator shall be able to
  2880. audit based on individual identity. 
  2881.  
  2882. The ADP System Administrator should also be able to audit based
  2883. on object identity. 
  2884.  
  2885.  
  2886. 6.2   The B1 Audit Requirement 
  2887.  
  2888. 6.2.1   Auditable Events 
  2889.  
  2890. The Criteria specifically adds the following to the list of
  2891. events that shall be auditable at the B1 class: 
  2892.  
  2893.    * Any override of human readable output markings (including   
  2894.      overwrite of sensitivity label markings and the turning off 
  2895.      of labelling capabilities) on paged, hard-copy output       
  2896.    devices 
  2897.  
  2898.    * Change of designation (single-level to/from multi-level) of 
  2899.      any communication channel or I/O device 
  2900.  
  2901.    * Change of sensitivity level(s) associated with a            
  2902.    single-level communication channel or I/O device 
  2903.  
  2904.    * Change of range designation of any multi-level communication 
  2905.      channel or I/O device  
  2906.  
  2907.  
  2908. 6.2.2   Auditable Information 
  2909.  
  2910. The Criteria specifically adds the following to the list of 
  2911. information that shall be recorded on the audit trail at the B1  
  2912. class: 
  2913.  
  2914.    * Security level of the object 
  2915.  
  2916.  
  2917.                                  9 
  2918.  
  2919.  
  2920.  
  2921. The following information should also be recorded on the audit
  2922. trail at the B1 class: 
  2923.  
  2924.    * Subject sensitivity level  
  2925.  
  2926.  
  2927. 6.2.3   Audit Basis 
  2928.   
  2929. In addition to previous selection criteria, at the B1 level the 
  2930. Criteria specifically requires that the ADP System Administrator 
  2931. shall be able to audit based on individual identity and/or object
  2932. security level. 
  2933.  
  2934.  
  2935. 6.3   The B2 Audit Requirement 
  2936.  
  2937. 6.3.1   Auditable Events 
  2938.  
  2939. The Criteria specifically adds the following to the list of
  2940. events that shall be auditable at the B2 class: 
  2941.  
  2942.    * Events that may exercise covert storage channels  
  2943.  
  2944. 6.3.2   Auditable Information 
  2945.   
  2946. No new requirements have been added at the B2 class. 
  2947.  
  2948.  
  2949. 6.3.3   Audit Basis 
  2950.  
  2951. In addition to previous selection criteria, at the B2 level the 
  2952. Criteria specifically requires that "the TCB shall be able to
  2953. audit the identified events that may be used in the exploitation
  2954. of covert storage channels."  The Trusted Computing Base shall
  2955. audit covert storage channels that exceed ten bits per second.(1) 
  2956.  
  2957. The Trusted Computing Base should also provide the capability to 
  2958. audit the use of covert storage mechanisms with bandwidths that
  2959. may exceed a rate of one bit in ten seconds.  
  2960.  
  2961.   
  2962. 6.4   The B3 Audit Requirement 
  2963.   
  2964. 6.4.1   Auditable Events 
  2965.   
  2966. The Criteria specifically adds the following to the list of
  2967. events that shall be auditable at the B3 class: 
  2968.  
  2969.    * Events that may indicate an imminent violation of the 
  2970.  
  2971.                                 10
  2972.  
  2973.      
  2974.  
  2975.      system's security policy (e.g., exercise covert timing      
  2976.      channels) 
  2977.  
  2978.   
  2979. 6.4.2   Auditable Information 
  2980.  
  2981. No new requirements have been added at the B3 class. 
  2982.  
  2983.  
  2984. 6.4.3   Audit Basis 
  2985.  
  2986. In addition to previous selection criteria, at the B3 level the  
  2987. Criteria specifically requires that "the TCB shall contain a 
  2988. mechanism that is able to monitor the occurrence or accumulation
  2989. of security auditable events that may indicate an imminent
  2990. violation of security policy.  This mechanism shall be able to
  2991. immediately notify the system security administrator when
  2992. thresholds are exceeded and, if the occurrence or accumulation of
  2993. these security-relevant events continues, the system shall take
  2994. the least disruptive action to terminate the event."(1)     
  2995.  
  2996. Events that would indicate an imminent security violation would 
  2997. include events that utilize covert timing channels that may
  2998. exceed a rate of ten bits per second and any repeated
  2999. unsuccessful login attempts.   
  3000.  
  3001. Being able to immediately notify the system security
  3002. administrator when thresholds are exceeded means that the
  3003. mechanism shall be able to recognize, report, and respond to a
  3004. violation of the security policy more rapidly than required at
  3005. lower levels of the Criteria, which usually only requires the
  3006. System Security Administrator to review an audit trail at some
  3007. time after the event.  Notification of the violation "should be
  3008. at the same priority as any other TCB message to an operator."(5) 
  3009.  
  3010. "If the occurrence or accumulation of these security-relevant
  3011. events continues, the system shall take the least disruptive
  3012. action to terminate the event."(1)  These actions may include
  3013. locking the terminal of the user who is causing the event or
  3014. terminating the suspect's process(es).  In general, the least
  3015. disruptive action is application dependent and there is no
  3016. requirement to demonstrate that the action is the least
  3017. disruptive of all possible actions.  Any action which terminates
  3018. the event is acceptable, but halting the system should be the
  3019. last resort.   
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.                                 11
  3026.  
  3027.  
  3028.  
  3029. 7.5   The A1 Audit Requirement 
  3030.  
  3031. 7.5.1   Auditable Events 
  3032.  
  3033. No new requirements have been added at the A1 class. 
  3034.  
  3035.  
  3036. 7.5.2   Auditable Information 
  3037.  
  3038. No new requirements have been added at the A1 class. 
  3039.  
  3040.  
  3041. 7.5.3   Audit Basis 
  3042.  
  3043. No new requirements have been added at the A1 class. 
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.                                 12 
  3080.  
  3081.  
  3082.  
  3083. 7.   POSSIBLE IMPLEMENTATION METHODS 
  3084.  
  3085. The techniques for implementing the audit requirements will vary 
  3086. from system to system depending upon the characteristics of the 
  3087. software, firmware, and hardware involved and any optional
  3088. features that are to be available.  Technologically advanced
  3089. techniques that are available should be used to the best
  3090. advantage in the system design to provide the requisite security
  3091. as well as cost-effectiveness and performance.  
  3092.  
  3093.  
  3094. 7.1   Pre/Post Selection of Auditable Events 
  3095.  
  3096. There is a requirement at classes C2 and above that all security-
  3097. relevant events be auditable.  However, these events may or may
  3098. not always be recorded on the audit trail.  Options that may be 
  3099. exercised in selecting which events should be audited include a
  3100. pre-selection feature and a post-selection feature.  A system may
  3101. choose to implement both options, a pre-selection option only, or
  3102. a post-selection option only.  
  3103.  
  3104. If a system developer chooses not to implement a general pre/post
  3105. selection option, there is still a requirement to allow the 
  3106. administrator to selectively audit the actions of specified users
  3107. for all Criteria classes.  Starting at the B1 class, the 
  3108. administrator shall also be able to audit based on object
  3109. security level. 
  3110.  
  3111. There should be options to allow selection by either individuals
  3112. or groups of users.  For example, the administrator may select
  3113. events related to a specified individual or select events related
  3114. to individuals included in a specified group.  Also, the
  3115. administrator may specify that events related to the audit file
  3116. be selected or, at classes B1 and above, that accesses to objects
  3117. with a given sensitivity level, such as Top Secret, be selected. 
  3118.  
  3119.  
  3120. 7.1.1   Pre-Selection 
  3121.  
  3122. For each auditable event the TCB should contain a mechanism to 
  3123. indicate if the event is to be recorded on the audit trail.  The 
  3124. system security administrator or designee shall be the only
  3125. person authorized to select the events to be recorded. 
  3126. Pre-selection may be by user(s) identity, and at the B1 class and
  3127. above, pre-selection may also be possible by object security
  3128. level.  Although the system security administrator shall be
  3129. authorized to select which events are to be recorded, the system
  3130. security administrator should not be able to exclude himself from
  3131. being audited. 
  3132.  
  3133.                                 13
  3134.  
  3135.  
  3136.  
  3137. Although it would not be recommended, the system security  
  3138. administrator may have the capability to select that no events be
  3139. recorded regardless of the Criteria requirements.  The intention 
  3140. here is to provide flexibility.  The purpose of designing audit 
  3141. features into a system is not to impose the Criteria on users
  3142. that may not want it, but merely to provide the capability to
  3143. implement the requirements. 
  3144.  
  3145. A disadvantage of pre-selection is that it is very hard to
  3146. predict what events may be of security-relevant interest at a
  3147. future date.  There is always the possibility that events not
  3148. pre-selected could one day become security-relevant, and the
  3149. potential loss from not auditing these events would be impossible
  3150. to determine. 
  3151.  
  3152. The advantage of pre-selection could possibly be better
  3153. performance as a result of not auditing all the events on the
  3154. system. 
  3155.  
  3156.  
  3157. 7.1.2   Post-Selection 
  3158.  
  3159. If the post-selection option to select only specified events from
  3160. an existing audit trail is implemented, again, only authorized 
  3161. personnel shall be able to make this selection.  Inclusion of
  3162. this option requires that the system should have trusted
  3163. facilities (as described in section 9.1) to accept
  3164. query/retrieval requests, to expand any compressed data, and to
  3165. output the requested data. 
  3166.  
  3167. The main advantage of post-selection is that information that may
  3168. prove useful in the future is already recorded on an audit trail
  3169. and may be queried at any time. 
  3170.  
  3171. The disadvantage involved in post-selection could possibly be 
  3172. degraded performance due to the writing and storing of what could
  3173. possibly be a very large audit trail. 
  3174.  
  3175.  
  3176. 7.2   Data Compression 
  3177.  
  3178. "Since a system that selects all events to be audited may
  3179. generate a large amount of data, it may be necessary to encode
  3180. the data to conserve space and minimize the processor time
  3181. required" to record the audit records.(3)  If the audit trail is
  3182. encoded, a complementary mechanism must be included to decode the
  3183. data when required.  The decoding of the audit trail may be done
  3184. as a preprocess before the audit records are accessed by the
  3185. database or as a postprocess after a relevant record has been 
  3186.  
  3187.                                 14
  3188.  
  3189.  
  3190.  
  3191. found.  Such decoding is necessary to present the data in an 
  3192. understandable form both at the administrators terminal and on
  3193. batch reports.  The cost of compressing the audit trail would be
  3194. the time required for the compression and expansion processes. 
  3195. The benefit of compressing data is the savings in storage and the
  3196. savings in time to write the records to the audit trail.  
  3197.  
  3198.  
  3199. 7.3   Multiple Audit Trails 
  3200.  
  3201. All events included on the audit trail may be written as part of
  3202. the same audit trail, but some systems may prefer to have several
  3203. distinct audit trails, e.g., one would be for "user" events, one
  3204. for "operator" events, and one for "system security
  3205. administrator" events.  This would result in several smaller
  3206. trails for subsequent analysis.  In some cases, however, it may
  3207. be necessary to combine the information from the trails when
  3208. questionable events occur in order to obtain a composite of the
  3209. sequence of events as they occurred.  In cases where there are
  3210. multiple audit trails, it is preferred that there be some
  3211. accurate, or at least synchronized, time stamps across the
  3212. multiple logs.    
  3213.  
  3214. Although the preference for several distinct audit trails may be 
  3215. present, it is important to note that it is often more useful
  3216. that the TCB be able to present all audit data as one
  3217. comprehensive audit trail. 
  3218.  
  3219.  
  3220. 7.4   Physical Storage 
  3221.  
  3222. A factor to consider in the selection of the medium to be used
  3223. for the audit trail would be the expected usage of the system. 
  3224. The I/O volume for a system with few users executing few
  3225. applications would be quite different from that of a large system
  3226. with a multitude of users performing a variety of applications. 
  3227. In any case, however, the system should notify the system
  3228. operator or administrator when the audit trail medium is
  3229. approaching its storage capacity.  Adequate advance notification
  3230. to the operator is especially necessary if human intervention is
  3231. required.   
  3232.  
  3233. If the audit trail storage medium is saturated before it is 
  3234. replaced, the operating system shall detect this and take some 
  3235. appropriate action such as: 
  3236.  
  3237. 1.  Notifying the operator that the medium is "full" and action  
  3238.     is necessary.  The system should then stop and require       
  3239.     rebooting.  Although a valid option, this action creates a   
  3240.  
  3241.                                 15
  3242.  
  3243.  
  3244.  
  3245.     severe threat of denial-of-service attacks. 
  3246.  
  3247. 2.  Storing the current audit records on a temporary medium with 
  3248.     the intention of later migration to the normal operational   
  3249.     medium, thus allowing auditing to continue.  This temporary  
  3250.     storage medium should be afforded the same protection as the 
  3251.     regular audit storage medium in order to prevent any attempts 
  3252.     to tamper with it. 
  3253.  
  3254. 3.  Delaying input of new actions and/or slowing down current    
  3255.     operations to prevent any action that requires use of the    
  3256.     audit mechanism. 
  3257.  
  3258. 4.  Stopping until the administrative personnel make more space  
  3259.     available for writing audit records.    
  3260.  
  3261. 5.  Stopping auditing entirely as a result of a decision by the  
  3262.     system security administrator. 
  3263.  
  3264.  
  3265. Any action that is taken in response to storage overflow shall be 
  3266. audited.  There is, however, a case in which the action taken may
  3267. not be audited that deserves mention.  It is possible to have the
  3268. system security administrator's decisions embedded in the system 
  3269. logic.  Such pre-programmed choices, embedded in the system
  3270. logic, may be triggered automatically and this action may not be
  3271. audited. 
  3272.  
  3273. Still another consideration is the speed at which the medium 
  3274. operates.  It should be able to accommodate the "worst case" 
  3275. condition such as when there are a large number of users on the 
  3276. system and all auditable events are to be recorded.  This worst
  3277. case rate should be estimated during the system design phase and
  3278. (when possible) suitable hardware should be selected for this
  3279. purpose. 
  3280.  
  3281. Regardless of how the system handles audit trail overflow, there 
  3282. must be a way to archive all of the audit data.  
  3283.  
  3284.  
  3285. 7.5   Write-Once Device 
  3286.  
  3287. For the lower Criteria classes (e.g., C2, B1) the audit trail may
  3288. be the major tool used in detecting security compromises. 
  3289. Implicit in this is that the audit resources should provide the
  3290. maximum protection possible.  One technique that may be employed
  3291. to protect the audit trail is to record it on a mechanism
  3292. designed to be a write-only device.  Other choices would be to
  3293. set the designated device to write-once mode by disabling the 
  3294.  
  3295.                                 16
  3296.  
  3297.  
  3298.  
  3299. read mechanism.  This method could prevent an attacker from
  3300. erasing or modifying the data already written on the audit trail
  3301. because the attacker will not be able to go back and read or find
  3302. the data that he or she wishes to modify.   
  3303.  
  3304. If a hardware device is available that permits only the writing
  3305. of data on a medium, modification of data already recorded would
  3306. be quite difficult.  Spurious messages could be written, but to
  3307. locate and modify an already recorded message would be difficult. 
  3308. Use of a write-once device does not prevent a penetrator from
  3309. modifying audit resources in memory, including any buffers, in
  3310. the current audit trail. 
  3311.  
  3312. If a write-once device is used to record the audit trail, the
  3313. medium can later be switched to a compatible read device to allow 
  3314. authorized personnel to analyze the information on the audit
  3315. trail in order to detect any attempts to penetrate the system. 
  3316. If a penetrator modified the audit software to prevent writing
  3317. records on the audit trail, the absence of data during an
  3318. extended period of time would indicate a possible security
  3319. compromise.  The disadvantage of using a write-once device is
  3320. that it necessitates a delay before the audit trail is available
  3321. for analysis by the administrator.  This may be offset by
  3322. allowing the system security administrator to review the audit
  3323. trail in real-time by getting copies of all audit records on
  3324. their way to the device. 
  3325.  
  3326.  
  3327. 7.6   Forwarding Audit Data 
  3328.  
  3329. If the facilities are available, another method of protecting the
  3330. audit trail would be to forward it to a dedicated processor.  The
  3331. audit trail should then be more readily available for analysis by
  3332. the system security administrator.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.                                 17 
  3350.  
  3351.  
  3352.  
  3353. 8.  OTHER TOPICS 
  3354.  
  3355.  
  3356. 8.1   Audit Data Reduction 
  3357.  
  3358. Depending upon the amount of activity on a system and the audit 
  3359. selection process used, the audit trail size may vary.  It is a
  3360. safe assumption though, that the audit trail would grow to sizes
  3361. that would necessitate some form of audit data reduction.  The
  3362. data reduction tool would most likely be a batch program that
  3363. would interface to the system security administrator.  This batch
  3364. run could be a combination of database query language and a
  3365. report generator with the input being a standardized audit file. 
  3366.  
  3367. Although they are not necessarily part of the TCB, the audit 
  3368. reduction tools should be maintained under the same configuration
  3369. control system as the remainder of the system. 
  3370.  
  3371.  
  3372. 8.2  Availability of Audit Data 
  3373.  
  3374. In standard data processing, audit information is recorded as it 
  3375. occurs.  Although most information is not required to be
  3376. immediately available for real-time analysis, the system security
  3377. administrator should have the capability to retreive audit
  3378. information within minutes of its recording.  The delay between
  3379. recording audit information and making it available for analysis
  3380. should be minimal, in the range of several minutes.   
  3381.  
  3382. For events which do require immediate attention, at the B3 class
  3383. and above, an alert shall be sent out to the system security 
  3384. administrator.  In systems that store the audit trail in a
  3385. buffer, the system security administrator should have the
  3386. capability to cause the buffer to be written out.  Regarding
  3387. real-time alarms, where they are sent is system dependent.   
  3388.  
  3389.  
  3390. 8.3  Audit Data Retention 
  3391.  
  3392. The exact period of time required for retaining the audit trail  
  3393. is site dependent and should be documented in the site's
  3394. operating procedures manual.  When trying to arrive at the
  3395. optimum time for audit trail retention, any time restrictions on
  3396. the storage medium should be considered.  The storage medium used
  3397. must be able to reliably retain the audit data for the amount of
  3398. time required by the site.     
  3399.  
  3400. The audit trail should be reviewed at least once a week.  It is
  3401. very possible that once a week may be too long to wait to review 
  3402.  
  3403.                                 18
  3404.  
  3405.  
  3406.  
  3407. the audit trail.  Depending on the amount of audit data expected 
  3408. by the system, this parameter should be adjusted accordingly. 
  3409. The recommended time in between audit trail reviews should be
  3410. documented in the Trusted Facility Manual.      
  3411.  
  3412.  
  3413. 8.4  Testing 
  3414.  
  3415. The audit resources, along with all other resources protected by
  3416. the TCB, have increasing assurance requirements at each higher
  3417. Criteria class.  For the lower classes, an audit trail would be a
  3418. major factor in detecting penetration attempts.  Unfortunately,
  3419. at these lower classes, the audit resources are more susceptible
  3420. to penetration and corruption.  "The TCB must provide some
  3421. assurance that the data will still be there when the
  3422. administrator tries to use it."(3)  The testing requirement
  3423. recognizes the vulnerability of the audit trail, and starting
  3424. with the C2 class, shall include a search for obvious flaws that
  3425. would corrupt or destroy the audit trail.  If the audit trail is
  3426. corrupted or destroyed, the existence of such flaws indicates
  3427. that the system can be penetrated.  Testing should also be
  3428. performed to uncover any ways of circumventing the audit
  3429. mechanisms.  The "flaws found in testing may be neutralized in 
  3430. any of a number of ways.  One way available to the system
  3431. designer is to audit all uses of the mechanism in which the flaw
  3432. is found and to log such events."(3)  An attempt should be made
  3433. to remove the flaw.   
  3434.  
  3435. At class B2 and above, it is required that all detected flaws
  3436. shall be corrected or else a lower rating will be given.  If
  3437. during testing the audit trail appears valid, analysis of this
  3438. data can verify that it does or does not accurately reflect the
  3439. events that should be included on the audit trail.  Even though
  3440. system assurances may increase at the higher classes, the audit
  3441. trail is still an effective tool during the testing phase as well
  3442. as operationally in detecting actual or potential security
  3443. compromises. 
  3444.  
  3445.  
  3446. 8.5  Documentation  
  3447.  
  3448. Starting at the C2 class, documentation concerning the audit 
  3449. requirements shall be contained in the Trusted Facility Manual.  
  3450. The Trusted Facility Manual shall explain the procedures to
  3451. record, examine, and maintain audit files.  It shall detail the
  3452. audit record structure for each type of audit event, and should
  3453. include what each field is and what the size of the field is. 
  3454.  
  3455. The Trusted Facility Manual shall also include a complete  
  3456.  
  3457.                                 19
  3458.  
  3459.  
  3460.  
  3461. description of the audit mechanism interface, how it should be
  3462. used, its default settings, cautions about the trade-offs
  3463. involved in using various configurations and capabilities, and
  3464. how to set up and run the system such that the audit data is 
  3465. afforded appropriate protection. 
  3466.  
  3467. If audit events can be pre- or post-selected, the manual should
  3468. also describe the tools and mechanisms available and how they are
  3469. to be used. 
  3470.  
  3471.  
  3472. 8.6  Unavoidable Security Risks 
  3473.  
  3474. There are certain risks contained in the audit process that exist
  3475. simply because there is no way to prevent these events from ever 
  3476. occurring.  Because there are certain unpredictable factors  
  3477. involved in auditing, i.e., man, nature, etc., the audit
  3478. mechanism may never be one hundred per cent reliable.  Preventive
  3479. measures may be taken to minimize the likelihood of any of these
  3480. factors adversely affecting the security provided by the audit
  3481. mechanism, but no audit mechanism will ever be risk free.      
  3482.  
  3483.  
  3484. 8.6.1   Auditing Administrators/Insider Threat 
  3485.  
  3486. Even with auditing mechanisms in place to detect and deter
  3487. security violations, the threat of the perpetrator actually being
  3488. the system security administrator or someone involved with the
  3489. system security design will always be present.  It is quite
  3490. possible that the system security administrator of a secure
  3491. system could stop the auditing of activities while entering the
  3492. system and corrupting files for personal benefit.  These
  3493. authorized personnel, who may also have access to identification
  3494. and authentication information, could also choose to enter the
  3495. system disguised as another user in order to commit crimes under
  3496. a false identity.  
  3497.     
  3498. Management should be aware of this risk and should be certain to 
  3499. exercise discretion when selecting the system security 
  3500. administrator.  The person who is to be selected for a trusted 
  3501. position, such as the system security administrator, should be 
  3502. subject to a background check before being granted the privileges
  3503. that could one day be used against the employer.   
  3504.  
  3505. The system security administrator could also be watched to ensure
  3506. that there are no unexplained variances in normal duties.  Any 
  3507. deviation from the norm of operations may indicate that a
  3508. violation of security has occurred or is about to occur. 
  3509.  
  3510.  
  3511.                                 20
  3512.  
  3513.  
  3514.  
  3515. An additional security measure to control this insider threat is
  3516. to ensure that the system administrator and the person
  3517. responsible for the audit are two different people.  "The
  3518. separation of the auditor's functions, databases, and access
  3519. privileges from those of the system administrator is an important
  3520. application of the separation of privilege and least privilege 
  3521. principles.  Should such a separation not be performed, and
  3522. should the administrator be allowed to undertake auditor
  3523. functions or vice-versa, the entire security function would
  3524. become the responsibility of a single, unaccountable
  3525. individual."(2) 
  3526.  
  3527. Another alternative may be to employ separate auditor roles. 
  3528. Such a situation may give one person the authority to turn off
  3529. the audit mechanism, while another person may have the authority
  3530. to turn it back on.  In this case no individual would be able to
  3531. turn off the audit mechanism, compromise the system, and then
  3532. turn it back on. 
  3533.  
  3534.  
  3535. 8.6.2   Data Loss 
  3536.   
  3537. Although the audit software and hardware are reliable security  
  3538. mechanisms, they are not infallible.  They, like the rest of the 
  3539. system, are dependent upon constant supplies of power and are  
  3540. readily subject to interruption due to mechanical or power
  3541. failures.  Their failure can cause the loss or destruction of
  3542. valuable audit data.  The system security administrator should be
  3543. aware of this risk and should establish some procedure that would
  3544. ensure that the audit trail is preserved somewhere.  The system
  3545. security administrator should duplicate the audit trail on a
  3546. removable medium at certain points in time to minimize the data
  3547. loss in the event of a system failure.  The Trusted Facility
  3548. Manual should include what the possibilities and nature of loss
  3549. exposure are, and how the data may be recovered in the event that
  3550. a catastrophe does occur.  
  3551.  
  3552. If a mechanical or power failure occurs, the system security 
  3553. administrator should ensure that audit mechanisms still function 
  3554. properly after system recovery.  For example, any auditing
  3555. mechanism options pre-selected before the system malfunction must
  3556. still be the ones in operation after the system recovery.   
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.    
  3564.  
  3565.                                 21 
  3566.  
  3567.  
  3568.  
  3569. 9.  AUDIT SUMMARY 
  3570.  
  3571.  
  3572. For classes C2 and above, it is required that the TCB "be able to
  3573. create, maintain, and protect from modification or unauthorized 
  3574. access or destruction an audit trail of accesses to the objects
  3575. it protects."(1)  The audit trail plays a key role in performing
  3576. damage assessment in the case of a corrupted system.   
  3577.  
  3578. The audit trail shall keep track of all security-relevant events 
  3579. such as the use of identification and authentication mechanisms, 
  3580. introduction of objects into a user's address space, deletion of 
  3581. objects from the system, system administrator actions, and any
  3582. other events that attempt to violate the security policy of the
  3583. system.  The option should exist that either all activities be
  3584. audited or that the system security administrator select the
  3585. events to be audited.  If it is decided that all activities
  3586. should be audited, there are overhead factors to be considered. 
  3587. The storage space needed for a total audit would generally
  3588. require more operator maintenance to prevent any loss of data and
  3589. to provide adequate protection.  A requirement exists that
  3590. authorized personnel shall be able to read all events recorded on
  3591. the audit trail.  Analysis of the total audit trail would be both
  3592. a difficult and time-consuming task for the administrator.  Thus,
  3593. a selection option is required which may be either a
  3594. pre-selection or post-selection option.   
  3595.  
  3596. The audit trail information should be sufficient to reconstruct a
  3597. complete sequence of security-relevant events and processes for a
  3598. system.  To do this, the audit trail shall contain the following 
  3599. information:  date and time of the event, user, type of event, 
  3600. success or failure of the event, the origin of the request, the
  3601. name of the object introduced into the user's address space,
  3602. accessed, or deleted from the storage system, and at the B1 class
  3603. and above, the sensitivity determination of the object. 
  3604.  
  3605. It should be remembered that the audit trail shall be included in
  3606. the Trusted Computing Base and shall be accorded the same
  3607. protection as the TCB.  The audit trail shall be subject to
  3608. strict access controls. 
  3609.  
  3610. An effective audit trail is necessary in order to detect and 
  3611. evaluate hostile attacks on a system.    
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.                                 22 
  3620.  
  3621.  
  3622.  
  3623. GLOSSARY
  3624.  
  3625. Administrator - Any one of a group of personnel assigned to 
  3626. supervise all or a portion of an ADP system.   
  3627.  
  3628. Archive - To file or store records off-line. 
  3629.  
  3630. Audit - To conduct the independent review and examination of 
  3631. system records and activities. 
  3632.  
  3633. Auditor - An authorized individual with administrative duties,
  3634. whose duties include selecting the events to be audited on the
  3635. system, setting up the audit flags which enable the recording of
  3636. those events, and analyzing the trail of audit events.(2) 
  3637.  
  3638. Audit Mechanism - The device used to collect, review, and/or
  3639. examine system activities. 
  3640.  
  3641. Audit Trail - A set of records that collectively provide
  3642. documentary evidence of processing used to aid in tracing from
  3643. original transactions forward to related records and reports,
  3644. and/or backwards from records and reports to their component
  3645. source transactions.(1) 
  3646.  
  3647. Auditable Event - Any event that can be selected for inclusion in
  3648. the audit trail.  These events should include, in addition to 
  3649. security-relevant events, events taken to recover the system
  3650. after failure and any events that might prove to be
  3651. security-relevant at a later time.  
  3652.  
  3653. Authenticated User - A user who has accessed an ADP system with a
  3654. valid identifier and authentication combination.  
  3655.  
  3656. Automatic Data Processing (ADP) System - An assembly of computer 
  3657. hardware, firmware, and software configured for the purpose of 
  3658. classifying, sorting, calculating, computing, summarizing, 
  3659. transmitting and receiving, storing, and retrieving data with a 
  3660. minimum of human intervention.(1) 
  3661.  
  3662. Category - A grouping of classified or unclassified sensitive 
  3663. information, to which an additional restrictive label is applied 
  3664. (e.g., proprietary, compartmented information) to signify that 
  3665. personnel are granted access to the information only if they have
  3666. formal approval or other appropriate authorization.(4)  
  3667.  
  3668. Covert Channel - A communication channel that allows a process to 
  3669. transfer information in a manner that violates the system's
  3670. security policy.(1) 
  3671.  
  3672.  
  3673.                                 23 
  3674.  
  3675.  
  3676.  
  3677. Covert Storage Channel - A covert channel that involves the
  3678. direct or indirect writing of a storage location by one process
  3679. and the direct or indirect reading of the storage location by
  3680. another process.  Covert storage channels typically involve a
  3681. finite resource (e.g., sectors on a disk) that is shared by two
  3682. subjects at different security levels.(1) 
  3683.  
  3684. Covert Timing Channel - A covert channel in which one process 
  3685. signals information to another by modulating its own use of
  3686. system resources (e.g., CPU time) in such a way that this
  3687. manipulation affects the real response time observed by the
  3688. second process.(1) 
  3689.  
  3690. Flaw - An error of commission, omission or oversight in a system 
  3691. that allows protection mechanisms to be bypassed.(1) 
  3692.  
  3693. Object - A passive entity that contains or receives information. 
  3694. Access to an object potentially implies access to the information
  3695. it contains.  Examples of objects are:  records, blocks, pages, 
  3696. segments, files, directories, directory trees and programs, as
  3697. well as bits, bytes, words, fields, processors, video displays, 
  3698. keyboards, clocks, printers, network nodes, etc.(1) 
  3699.  
  3700. Post-Selection - Selection, by authorized personnel, of specified
  3701. events that had been recorded on the audit trail. 
  3702.  
  3703. Pre-Selection - Selection, by authorized personnel, of the
  3704. auditable events that are to be recorded on the audit trail. 
  3705.  
  3706. Security Level - The combination of a hierarchical classification
  3707. and a set of non-hierarchical categories that represents the 
  3708. sensitivity of information.(1) 
  3709.  
  3710. Security Policy - The set of laws, rules, and practices that 
  3711. regulate how an organization manages, protects, and distributes 
  3712. sensitive information.(1) 
  3713.  
  3714. Security-Relevant Event - Any event that attempts to change the  
  3715. security state of the system,  (e.g., change discretionary access
  3716. controls, change the security level of the subject, change user  
  3717. password, etc.).  Also, any event that attempts to violate the  
  3718. security policy of the system, (e.g., too many attempts to login,
  3719. attempts to violate the mandatory access control limits of a
  3720. device, attempts to downgrade a file, etc.).(1) 
  3721.  
  3722. Sensitive Information - Information that, as determined by a 
  3723. competent authority, must be protected because its unauthorized 
  3724. disclosure, alteration, loss, or destruction will at least cause 
  3725. perceivable damage to someone or something.(1) 
  3726.  
  3727.                                 24
  3728.  
  3729.  
  3730.  
  3731. Subject - An active entity, generally in the form of a person,  
  3732. process, or device that causes information to flow among objects
  3733. or changes the system state.  Technically, a process/domain
  3734. pair.(1) 
  3735.  
  3736. Subject Sensitivity Level - The sensitivity level of the objects
  3737. to which the subject has both read and write access.  A subject's
  3738. sensitivity level must always be less than or equal to the
  3739. clearance of the user the subject is associated with.(4) 
  3740.  
  3741. System Security Administrator - The person responsible for the 
  3742. security of an Automated Information System and having the
  3743. authority to enforce the security safeguards on all others who
  3744. have access to the Automated Information System.(4)  
  3745.  
  3746. Trusted Computing Base (TCB) - The totality of protection
  3747. mechanisms within a computer system -- including hardware,
  3748. firmware, and software -- the combination of which is responsible
  3749. for enforcing a security policy.  A TCB consists of one or more
  3750. components that together enforce a unified security policy over a
  3751. product or system.  The ability of a TCB to correctly enforce a
  3752. security policy depends solely on the mechanisms within the TCB
  3753. and on the correct input by system administrative personnel of
  3754. parameters (e.g., a user's clearance) related to the security
  3755. policy.(1) 
  3756.  
  3757. User - Any person who interacts directly with a computer
  3758. system.(1) 
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.                                 25 
  3782.  
  3783.  
  3784.  
  3785. REFERENCES 
  3786.  
  3787.  
  3788. 1.    National Computer Security Center, DoD Trusted Computer    
  3789.       System Evaluation Criteria, DoD, DoD 5200.28-STD, 1985. 
  3790.  
  3791. 2.    Gligor, Virgil D., "Guidelines for Trusted Facility        
  3792.       Management and Audit," University of Maryland, 1985. 
  3793.  
  3794. 3.    Brown, Leonard R., "Guidelines for Audit Log Mechanisms in 
  3795.       Secure Computer Systems," Technical Report                 
  3796.       TR-0086A(2770-29)-1, The Aerospace Corporation, 1986. 
  3797.  
  3798. 4.    Subcommittee on Automated Information System Security,     
  3799.       Working Group #3, "Dictionary of Computer Security         
  3800.       Terminology," 23 November 1986. 
  3801.   
  3802. 5.    National Computer Security Center, Criterion               
  3803.       Interpretation, Report No. C1-C1-02-87, 1987. 
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.                                 26